Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. CREATE TABLE tbl_employees (
  2. id serial NOT NULL,
  3. first_name character varying NOT NULL,
  4. last_name character varying NOT NULL
  5. )
  6.  
  7. CREATE TABLE tbl_employees (
  8. id serial NOT NULL,
  9. employee_id NOT NULL,
  10. first_name character varying NOT NULL,
  11. last_name character varying NOT NULL,
  12. changed_on timestamp NOT NULL
  13. )
  14.  
  15. CREATE OR REPLACE FUNCTION log_employee_changes() RETURNS trigger as
  16. $BODY$
  17. BEGIN
  18. IF (NEW.last_name <> OLD.last_name) or (NEW.first_name <> OLD.first_name) THEN
  19. INSERT INTO tbl_employee_history(employee_id,last_name, first_name,changed_on)
  20. VALUES(OLD.id,OLD.last_name, OLD.first_name,now());
  21. END IF;
  22. RETURN NEW;
  23. END;
  24. $BODY$
  25. LANGUAGE plpgsql;
  26.  
  27. CREATE TRIGGER add_log
  28. BEFORE UPDATE ON tbl_employees
  29. FOR EACH ROW
  30. EXECUTE PROCEDURE log_employee_changes();
  31.  
  32. CREATE OR REPLACE FUNCTION log_employee_changes() RETURNS trigger as
  33. $BODY$
  34. BEGIN
  35. IF ?????there is one change on whatever column????? THEN
  36. INSERT INTO tbl_employee_history(employee_id,last_name, first_name,changed_on)
  37. VALUES(OLD.id,OLD.last_name, OLD.first_name,now());
  38. END IF;
  39. RETURN NEW;
  40. END;
  41. $BODY$
  42. LANGUAGE plpgsql;
  43.  
  44. if new <> old then ...
  45.  
  46. if new is distinct from old then ...
  47.  
  48. CREATE OR REPLACE FUNCTION log_employee_changes() RETURNS trigger as
  49. $BODY$
  50. BEGIN
  51. IF OLD!=NEW THEN
  52. INSERT INTO tbl_employee_history(employee_id,last_name, first_name,changed_on)
  53. VALUES(OLD.id,OLD.last_name, OLD.first_name,now());
  54. END IF;
  55. RETURN NEW;
  56. END;
  57. $BODY$
  58. LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement