Триггер в PostgreSQL — это специальная процедура, которая автоматически срабатывает при событиях
INSERT, UPDATE, DELETE или TRUNCATE в таблице.Они помогают автоматически логировать изменения данных, поддерживать целостность между связанными таблицами и выполнять проверку или модификацию данных до или после операций.
Создать триггер можно следующим образом:
CREATE OR MODIFY TRIGGER trigger_name
WHEN EVENT
ON table_name TRIGGER TYPE
EXECUTE stored_proccedure
⏩ Выполнять их можно:
•
BEFORE — до действия •
AFTER — после действия (например для логов, уведомлений).•
INSTEAD OF — используется с views и полностью заменяет стандартное поведение.⏩ Различают несколько видов триггеров, например:
•
FOR EACH ROW — применяется для каждой строки•
FOR EACH STATEMENT — срабатывает один раз на всю операцию, независимо от числа строкУдаляется триггер тоже довольно просто, с помощью
DROP TRIGGER trigger_name.📎 Совет: следите за производительностью — при большом количестве триггеров сложнее отлаживать поведение из-за повышенной нагрузки на БД.
#devops #postgresql #sql #триггеры
