/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/sql/sql-885-026/main.sql
29 строк
927 B
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
CREATE TABLE audit_log ( table_name text, record_id integer, action text, old_data jsonb, new_data jsonb, changed_at timestamp DEFAULT CURRENT_TIMESTAMP, changed_by text DEFAULT current_user ); CREATE OR REPLACE FUNCTION log_changes() RETURNS TRIGGER AS $$ BEGIN IF TG_OP = 'DELETE' THEN INSERT INTO audit_log (table_name, record_id, action, old_data) VALUES (TG_TABLE_NAME, OLD.id, TG_OP, to_jsonb(OLD)); RETURN OLD; ELSIF TG_OP = 'UPDATE' THEN INSERT INTO audit_log (table_name, record_id, action, old_data, new_data) VALUES (TG_TABLE_NAME, NEW.id, TG_OP, to_jsonb(OLD), to_jsonb(NEW)); RETURN NEW; ELSIF TG_OP = 'INSERT' THEN INSERT INTO audit_log (table_name, record_id, action, new_data) VALUES (TG_TABLE_NAME, NEW.id, TG_OP, to_jsonb(NEW)); RETURN NEW; END IF; RETURN NULL; END; $$ LANGUAGE plpgsql;