Проверка работы триггера и триггерной функции
Для проверки работы триггера и триггерной функции в команде 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.
Дата добавления: 2015-02-03; просмотров: 988;