BD-1st-2.4-lab13.tresc-1.1-Slajd26
Parametry wyzwalacza (1)
Omówimy teraz parametry wyzwalacza. Pierwszy z nich określa zdarzenie, którego wystąpienie ma uruchomić wyzwalacz. Może to być polecenie DML: INSERT, UPDATE lub DELETE, w tym wypadku po słowie ON podaje się nazwę relacji lub perspektywy, do której będzie kierowane polecenie. Dodatkowo w przypadku polecenia UPDATE można wprost podać listę atrybutów relacji lub perspektywy, których uaktualnienie ma spowodować uruchomienie wyzwalacza. Realizuje się to używając konstrukcji „UPDATE OF lista_atrybutów”. Inny rodzaj poleceń, które mogą uruchomić wyzwalacz, to dwa polecenia z grupy DDL: CREATE lub ALTER. W takim przypadku wyzwalacz może zostać uruchomiony przez utworzenie nowego obiektu w danym schemacie bądź zmianę definicji obiektu istniejącego. Wreszcie wyzwalacz może być uruchomiony przez zdarzenie w bazie danych, takie jak zalogowanie lub wylogowanie użytkownika, wystąpienie błędu, uruchomienie czy też zatrzymanie bazy danych.
Drugi parametr określa moment wykonania wyzwalacza w stosunku do zdarzenia, które spowodowało uruchomienie wyzwalacza. BEFORE oznacza, że wyzwalacz ma zostać wykonany przed realizacją polecenia odpowiadającego za zdarzenie, na którym zdefiniowano wyzwalacz. Np. wyzwalacz BEFORE INSERT zostaje uruchomiony wydaniem przez użytkownika polecenia INSERT, wyzwalacz jest wykonywany przed wykonaniem polecenia INSERT w bazie danych. AFTER powoduje, że wyzwalacz zostaje wykonany po realizacji polecenia odpowiadającego za zdarzenie, na którym zdefiniowano wyzwalacz. Z kolei INSTEAD OF powoduje wykonanie wyzwalacza zamiast polecenia, odpowiadającego za uruchomienie wyzwalacza. INSTEAD OF może być jednak definiowany jedynie dla perspektyw.