Помощь в учёбе, очень быстро...
Работаем вместе до победы

Триггеры базы данных

РефератПомощь в написанииУзнать стоимостьмоей работы

В дополнение к любым ограничениям, которые проверяются при выдаче оператора insert, update или delete по отношению к таблице, срабатывают также все разрешенные триггеры базы данных уровня строки и оператора. Эти триггеры могут обеспечить дополнительную проверку и обработку, которые не могут быть реализованы посредством ограничений. Однако если триггеры базы данных отменены, нет никакой… Читать ещё >

Триггеры базы данных (реферат, курсовая, диплом, контрольная)

В дополнение к любым ограничениям, которые проверяются при выдаче оператора insert, update или delete по отношению к таблице, срабатывают также все разрешенные триггеры базы данных уровня строки и оператора. Эти триггеры могут обеспечить дополнительную проверку и обработку, которые не могут быть реализованы посредством ограничений. Однако если триггеры базы данных отменены, нет никакой возможности обеспечить их автоматическое срабатывание после внесения изменения в таблицу. В следующем примере кода показано, как для таблицы delegates был создан триггер базы данных и как оператор UPDATE вызывает триггера базы данных.

SQL> 1.

  • 1 CREATE OR REPLACE TRIGGER bir_delegates
  • 2 BEFORE
  • 3 UPDATE
  • 4 ON delegates
  • 5 FOR EACH ROW
  • 6 BEGIN
  • 7 IF: new. d_dateJast_contacted > SYSDATE THEN
  • 8 RAISE_APPLICATION_ERROR (-20 001, «ERR: Date last contacted can not be in the future');
  • 9 END IF;
  • 10* END;

SQL> /.

Trigger created.

SQL>

SQL> UPDATE delegates.

  • 2 SET d_date_last_contacted = SYSDATE + 1
  • 3 WHERE d_delegate_id = 2;

UPDATE delegates *.

ERROR at line 1:

ORA-20 001: EROR: Date last contacted can not be in the future ORA-6 512: at line 3.

ORA-4 088: error during execution of trigger 'ASCEND.BIR_ DELEGATES'.

SQL>

Опять-таки, как и в случае с ограничениями, способ, посредством которого триггеры базы данных сообщают об ошибках, далек от идеального. Программа внешнего интерфейса могла бы перехватывать обнаруженную ошибку триггера базы данных и сообщать о ней пользователю более дружественным способом.

Если операторы INSERT, update или delete вызывают неудачное завершение работы триггера базы данных, то эти операторы не оказывают действия ни на одну из строк. Эти операторы воздействуют либо на все строки, либо не воздействуют ни на одну из строк.

Показать весь текст
Заполнить форму текущей работой