func-trigger-after-update.sql
447 Bytes
CREATE OR REPLACE FUNCTION log_table_after_update() RETURNS trigger LANGUAGE plpgsql AS $$
DECLARE
v_old json;
v_new json;
BEGIN
v_old = rec_to_json(TG_TABLE_SCHEMA, TG_TABLE_NAME, OLD);
v_new = rec_to_json(TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW);
INSERT INTO log_table (table_schema, table_name, operation, old_values, new_values)
VALUES (TG_TABLE_SCHEMA, TG_TABLE_NAME, 'update', v_old, v_new);
RETURN NEW;
END
$$