ВУЗ:
Составители:
Рубрика:
74
End;
Обращение к псевдозаписям :old и :new должно производиться через
имена полей и применимо только к строковым триггерам.
Условие WHERE
С его помощью можно заставить триггер работать по условию! Само
условие WHERE в триггере применимо к типу строчных триггеров.
Пример:
Предварительно создадим таблицу, которая будет фиксировать записи,
в которых не ввели название книги.
CREATE TABLE ADMIN_BOOKS.Audit_Trigger2(date_oper date,
user_name char(20), code_book number(5));
Commit;
Теперь создадим триггер:
CREATE OR REPLACE TRIGGER ADMIN_BOOKS.Trigger2
BEFORE INSERT OR UPDATE OF Title_Book ON ADMIN_BOOKS.Books
FOR EACH ROW WHEN (TRIM(new.Title_Book) = '')
DECLARE
BEGIN
INSERT INTO ADMIN_BOOKS.Audit_Trigger2
(date_oper,user_name,code_book) VALUES(sysdate, user,
:new.code_book);
END Trigger2;
Обратите внимание на наличие строки OF Title_Book ON
ADMIN_BOOKS.Books – это определяется поле, на которое устанавливаем
условие триггера.
Предикаты
В триггерах БД Oracle возможно применение логических операторов -
предикатов. Они имеют следующие определения:
INSERTING,
UPDATING, DELETING. Это внутренние переменные среды Oracle, ко-
торые в зависимости от воздействующего на таблицу оператора
DML при-
нимают одно из значений:
TRUE или FALSE.
Пример:
Предварительно создадим таблицу, которая будет фиксировать виды
выполненных операций.
CREATE TABLE ADMIN_BOOKS.Audit_Trigger3(date_oper date,
user_name char(20), oper varchar2(10));
Страницы
- « первая
- ‹ предыдущая
- …
- 73
- 74
- 75
- 76
- 77
- …
- следующая ›
- последняя »
