Что такое триггеры в sql?
Как триггер PostgreSQL запускается при изменении строки таблицы?
Дом, ремонт, стройка
Животные и питомцы
Учёба и образование
Психология
Фотография
Пока нет лидеров с лучшими ответами.
Ваш вопрос
Часть устройства PostgreSQL | Что означает Событие | Триггер привязывают к определенным действиям над объектом, например INSERT, UPDATE или DELETE. Само наличие таблицы не означает автоматического появления таких обработчиков. Функция | В определении триггера указывается вызываемая функция. Она содержит логику обработки, а команда CREATE TRIGGER описывает связь события и этой функции. BEFORE | Обработчик выполняется до соответствующего действия над строкой. Для строкового триггера это позволяет проверить или изменить передаваемое новое значение в пределах поддерживаемого поведения. AFTER | Обработчик выполняется после события, что подходит для логики, учитывающей выполненное изменение. Это не обязательно означает момент после фиксации всей транзакции. FOR EACH ROW | Функция вызывается для каждой затронутой строки. Команда, меняющая много строк, может вызвать обработчик много раз, поэтому тяжелая работа внутри заметно увеличивает общую стоимость. FOR EACH STATEMENT | Обработчик вызывается для команды, а не отдельно для каждой строки. Его нельзя писать как строковый обработчик, предполагая наличие одной конкретной новой строки. OLD и NEW | Доступность прежнего и нового состояния зависит от операции и вида триггера. При INSERT нет прежней строки, при DELETE нет новой строки в смысле обычного изменения. Транзакция | Ошибка в обработке может привести к неуспеху операции. Запись локальной истории вместе с изменением базы и отправка внешнего сообщения имеют разные свойства отката. Выбор механизма | Для простого запрета NULL, отрицательной суммы или нарушения связи сначала рассматривают ограничения таблицы. Триггер выбирают для логики, которой действительно нужен обработчик события.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4.1 Fast
4.1 Fast
Что такое триггеры в sql?
В PostgreSQL триггер задает, какую функцию выполнить при определенном событии, например INSERT или UPDATE таблицы. Обычное приложение отправляет изменение, а вызов происходит по настройке в базе, без отдельной команды запуска из приложения. Триггеры бывают строковыми и операторными: первый вариант срабатывает для каждой затронутой строки, второй для команды целиком. BEFORE и AFTER обозначают момент относительно события. В функции строкового триггера доступны специальные значения OLD и NEW в зависимости от операции. Это удобно, например, для проверки или записи истории изменения. Триггер работает в контексте транзакции и может повлиять на ее результат ошибкой. Простые правила целостности часто понятнее выражать обычными ограничениями таблицы.