Проверка работы триггера и триггерной функции

Для проверки работы триггера и триггерной функции в команде INSERT в позиции поля customer_id введем неправильное значение равное 108 (в поле customer_id таблицы customers это значение отсутствует) и попытаемся выполнить команду

INSERT INTO "books"."shipments" ("id", "customer_id", "isbn", "ship_date")

VALUES (376, 108, '0394800017', '2001-08-06 09:29:21-07');

Но выполнить команду не удается, так как триггерная функция выдает следующее сообщение об ошибке

ERROR: Invalid customer ID number.

********** Ошибка **********

ERROR: Invalid customer ID number.

SQL state: P0001

Затем в команде INSERT в позиции поля customer_id исправляем значение 108 на 107 (в поле customer_id таблицы customers это значение имеет место), а в позиции поля isbn введем неверное значение (т.е. отсутствующее в поле isbn таблицы editions) и снова попытаемся выполнить команду

INSERT INTO "books"."shipments" ("id", "customer_id", "isbn", "ship_date")

VALUES (376, 107, '0794800017', '2001-08-06 09:29:21-07');

Команда не выполняется и в данном случае, так как триггерная функция выдает следующее сообщение об ошибке

ERROR: Invalid ISBN.

********** Ошибка **********

ERROR: Invalid ISBN.

SQL state: P0001

В следующей команде исправим значения полей на правильные (т.е. на те, которые присутствуют в соответствующих полях таблиц customers и editions) и снова запустим нижеприведенную команду на выполнение

INSERT INTO "books"."shipments" ("id", "customer_id", "isbn", "ship_date")

VALUES (376, 107, '0794800017', '2001-08-06 09:29:21-07');

В этот раз команда выполняется с выдачей сообщения об успешном завершении:

Query returned successfully: 1 row affected, 46 ms execution time.

Удаление триггера

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

Синтаксис удаления существующих триггеров:

DROP TRIGGER имя ON таблица


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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