double arrow

Триггеры


Довольно часто перед некоторыми событиями SQL или после них должны выполняться определенные операции – например, проверка логической целостности данных, заносимых в базу, предварительное форматирование данных перед вставкой или модификация других таблиц, логически обусловленная удалением или модификацией записей. Традиционно такие операции выполнялись на программном уровне приложением, подключившимся к базе данных, а не самой СУБД.

В PostgreSQL поддерживаются нестандартные расширения, называемые триггерами (trigger) и упрощающие взаимодействие приложения с базой данных. Триггер определяет функцию, которая должна выполняться до или после некоторой операции с базой данных. Триггеры реализуются на языке С, PL/pgSQL или любом другом функциональном языке (кроме SQL), который может использоваться в PostgreSQL для определения функций.

Триггеры срабатывают при выполнении команды SQL INSERT, UPDATE или DELETE и представляют собой механизм, позволяющий базе данных автоматически выполнять специфи­ческую функцию всякий раз, когда выполняется определенный тип операции. Триггеры могут быть определены так, чтобы они выполнялись до или после операций INSERT, UPDATE, или DELETE.

Прежде чем будет создан триггер, должна быть определена триггерная функция. Триггерная функция должна быть объявлена как функция без входных аргументов и возвращающая значение типа trigger. (Триггерная функция получает свои входные значения через специальную структуру TriggerData, а не в форме обычных аргументов функции.)

Как только подходящая триггерная функция будет создана, с помощью команды CREATE TRIGGER может быть создан триггер. Одна триггерная функция может быть использована многими триггерами. командой SQL CREATE TRIGGER, а триггерная функция определяется.

Таким образом, создание триггеров предполагает выполнение следующих шагов.

1. Сначала с помощью команды CREATE FUNCTION создается триггерная функция, выполняющая необходимые действия в базе данных.

2. Затем с помощью команды CREATE TRIGGER создается сам триггер, запускающий в нужный момент триггерную функцию.

Заказать ✍️ написание учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Сейчас читают про: