MOCKSTACKS
EN
Questions And Answers

More Tutorials









postgreSQL Trigger for multiple purpose


Step 1: create your function


CREATE OR REPLACE FUNCTION add_log_function()
 RETURNS trigger AS $BODY$
DECLARE
 vDescription TEXT;
 vId INT;
 vReturn RECORD;
BEGIN
 vDescription := TG_TABLE_NAME || ' ';
 IF (TG_OP = 'INSERT') THEN
 vId := NEW.id;
 vDescription := vDescription || 'added. Id: ' || vId;
 vReturn := NEW;
 ELSIF (TG_OP = 'UPDATE') THEN
 vId := NEW.id;
 vDescription := vDescription || 'updated. Id: ' || vId;
 vReturn := NEW;
 ELSIF (TG_OP = 'DELETE') THEN
 vId := OLD.id;
 vDescription := vDescription || 'deleted. Id: ' || vId;
 vReturn := OLD;
 END IF;
 RAISE NOTICE 'TRIGER called on % - Log: %', TG_TABLE_NAME, vDescription;
 INSERT INTO log
 (table_name, table_id, description, created_at)
 VALUES
 (TG_TABLE_NAME, vId, vDescription, NOW());
 RETURN vReturn;
END $BODY$
 LANGUAGE plpgsql;

Step 2: create your trigger


CREATE TRIGGER add_log_trigger
AFTER INSERT OR UPDATE OR DELETE
ON company
FOR EACH ROW
EXECUTE PROCEDURE add_log_function();

Step 3: test it


INSERT INTO company (name) VALUES ('Company 1');
INSERT INTO company (name) VALUES ('Company 2');
INSERT INTO company (name) VALUES ('Company 3');
UPDATE company SET name='Company new 2' WHERE name='Company 2';
DELETE FROM company WHERE name='Company 1';
SELECT * FROM log;


Conclusion

In this page (written and validated by ) you learned about postgreSQL Trigger for multiple purpose . What's Next? If you are interested in completing postgreSQL tutorial, your next topic will be learning about: postgreSQL UPDATE.



Incorrect info or code snippet? We take very seriously the accuracy of the information provided on our website. We also make sure to test all snippets and examples provided for each section. If you find any incorrect information, please send us an email about the issue: mockstacks@gmail.com.


Share On:


Mockstacks was launched to help beginners learn programming languages; the site is optimized with no Ads as, Ads might slow down the performance. We also don't track any personal information; we also don't collect any kind of data unless the user provided us a corrected information. Almost all examples have been tested. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. By using Mockstacks.com, you agree to have read and accepted our terms of use, cookies and privacy policy.