PostgreSQL - СОЗДАТЬ ТРИГГЕР
Чтобы создать новый триггер в PostgreSQL, выполните следующие действия:
- Сначала создайте функцию триггера, используя оператор CREATE FUNCTION.
- Во-вторых, привяжите функцию триггера к таблице с помощью оператора CREATE TRIGGER.
Функция триггера похожа на обычную функцию. Однако функция триггера не принимает никаких аргументов и имеет возвращаемое значение с типом триггера.
Ниже показан синтаксис создания функции триггера:
Синтаксис: СОЗДАТЬ ФУНКЦИЮ trigger_function () RETURNS триггер AS
Функция триггера получает данные о своей вызывающей среде через специальную структуру, называемую TriggerData , содержащий набор локальных переменных. Определив функцию триггера, вы можете привязать ее к одному или нескольким событиям триггера, таким как INSERT , UPDATE и DELETE .
Пример:
Давайте посмотрим на пример создания нового триггера. В этом примере мы создадим новую таблицу с именем COMPANY следующим образом:
СОЗДАТЬ НАСТОЛЬНУЮ КОМПАНИЮ ( ID INT PRIMARY KEY NOT NULL, ТЕКСТ ИМЕНИ НЕ ПУСТО, AGE INT NOT NULL, АДРЕСНЫЙ СИМВОЛ (50), ЗАРПЛАТА РЕАЛЬНАЯ );
При изменении имени сотрудника мы регистрируем изменения в отдельной таблице с именем AUDIT. :
СОЗДАТЬ ТАБЛИЦУ АУДИТА ( EMP_ID INT NOT NULL, ENTRY_DATE TEXT NOT NULL );
Сначала определите новую функцию с именем auditlog ():
СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ФУНКЦИЮ auditlog () ВОЗВРАЩАЕТ ТРИГГЕР КАК $ example_table $ НАЧИНАТЬ INSERT INTO AUDIT (EMP_ID, ENTRY_DATE) VALUES (new.ID, current_timestamp); ВОЗВРАТ НОВЫЙ; КОНЕЦ; $ example_table $ LANGUAGE plpgsql;
Функция вставляет старую фамилию в АУДИТ таблица, включающая идентификатор сотрудника, фамилию и время изменения, если фамилия сотрудника изменилась. Во-вторых, привяжите функцию триггера к таблице сотрудников. Имя триггера - изменение имени s . Перед значением имени столбец обновляется, автоматически вызывается функция триггера для регистрации изменений.
СОЗДАТЬ ТРИГГЕР example_trigger ПОСЛЕ ВСТАВКИ В КОМПАНИИ ДЛЯ КАЖДОЙ СТРОКИ ВЫПОЛНИТЕ ПРОЦЕДУРУ auditlog ();
В-третьих, вставьте образцы данных для тестирования. Вставляем две строки в таблицу сотрудников.
ВСТАВИТЬ В КОМПАНИЮ (ID, ИМЯ, ВОЗРАСТ, АДРЕС, ЗАРПЛАТУ) ЦЕННОСТИ (1, «Раджу», 25, «Нью-Дели», 33000.00);
Чтобы изучить таблицу сотрудников, используйте следующий запрос:
ВЫБЕРИТЕ * ОТ КОМПАНИИ;
Выход: