Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE employees(
- id serial PRIMARY KEY,
- first_name VARCHAR(40) NOT NULL,
- last_name VARCHAR(40) NOT NULL
- );
- CREATE TABLE employee_audits (
- id serial PRIMARY KEY,
- employee_id int ,
- description VARCHAR(200),
- first_name VARCHAR(40) ,
- last_name VARCHAR(40) ,
- changed_on TIMESTAMP(6)
- );
- CREATE OR REPLACE FUNCTION log_last_name_changes()
- RETURNS TRIGGER AS
- $BODY$
- BEGIN
- IF NEW.last_name <> OLD.last_name THEN
- INSERT INTO employee_audits(employee_id, first_name, last_name, changed_on, description)
- VALUES(OLD.id, OLD.first_name, OLD.last_name, now(), CONCAT('Last Name Has Been Changed from ''', OLD.last_name, ''' to '' ', NEW.last_name));
- END IF;
- IF NEW.first_name <> OLD.first_name THEN
- INSERT INTO employee_audits(employee_id, first_name, last_name, changed_on, description)
- VALUES(OLD.id, OLD.first_name, OLD.last_name, now(), CONCAT('First Name Has Been Changed from ''', OLD.first_name, ''' to '' ', NEW.first_name));
- END IF;
- RETURN NEW;
- END;
- $BODY$
- LANGUAGE plpgsql;
- CREATE TRIGGER last_name_changes
- BEFORE UPDATE
- ON employees
- FOR EACH ROW
- EXECUTE PROCEDURE log_last_name_changes();
- UPDATE employees
- SET last_name = 'overandi'
- WHERE ID = 2;
- SELECT * FROM employees;
- SELECT * FROM employee_audits;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement