CREATETRIGGER

name

Nazwa nowego triggera. Nazwa musi być różna od nazwy każdego innego trigera dla tej samej tabeli. Nazwa nie może być określona na podstawie schematu – triger dziedziczy schemat swojej tabeli. Dla trigerów z ograniczeniami jest to również nazwa, której należy użyć podczas modyfikowania trigera za pomocą polecenia SET CONSTRAINTS.

BEFORE
AFTER
INSTEAD OF

Określa, czy funkcja jest wywoływana przed, po, czy zamiast zdarzenia. Wyzwalacz ograniczenia może być określony tylko jako AFTER.

zdarzenie

Jedno z INSERT, UPDATE, DELETE lub TRUNCATE; określa zdarzenie wywołujące triger. Wiele zdarzeń można określić za pomocą OR.

Dla zdarzeń UPDATE możliwe jest określenie listy kolumn za pomocą poniższej składni:

UPDATE OF column_name1 

Wyzwalacz zostanie wywołany tylko jeśli przynajmniej jedna z wymienionych kolumn zostanie wymieniona jako cel polecenia UPDATE.

INSTEAD OF UPDATE zdarzenia nie obsługują list kolumn.

table

Nazwa (opcjonalnie kwalifikowana według schematu) tabeli lub widoku, dla których triger został wywołany.

referenced_table_name

Nazwa (opcjonalnie kwalifikowana według schematu) innej tabeli, do której odwołuje się ograniczenie. Opcja ta jest używana dla ograniczeń klucza obcego i nie jest zalecana do ogólnego użytku. Może być określona tylko dla trigerów z ograniczeniami.

DEFERRABLE
NOT DEFERRABLE
INITITIALLY IMMEDIATE
INITIALLY DEFERRED

Domyślny czas wykonania trigera. Zobacz dokumentację CREATE TABLE aby poznać szczegóły tych opcji. Może być określony tylko dla trigerów ograniczających.

FOR EACH ROW
FOR EACH STATEMENT

To określa, czy procedura trigera ma być uruchamiana raz dla każdego wiersza wywołanego przez zdarzenie trigera, czy tylko raz na każde polecenie SQL. Jeśli nie określono żadnego z nich, domyślnie wywoływany jest FOR EACH STATEMENT. Warunek

wyrażenie logiczne określające, czy dana funkcja trigera zostanie wykonana. Jeśli określono KIEDY, funkcja zostanie wywołana tylko wtedy, gdy warunek zwróci wartość true. W trigerach FOR EACH ROW warunek WHEN może odnosić się do kolumn wartości starego i/lub nowego wiersza poprzez zapis odpowiednio OLD.column_name lub NEW.column_name. Oczywiście wyzwalacze INSERT nie mogą odwoływać się do OLD, a wyzwalacze DELETE nie mogą odwoływać się do NEW.

WyzwalaczeINSTEAD OF nie obsługują warunków WHEN.

Obecnie wyrażenia WHEN nie mogą zawierać podzapytań.

Zauważ, że w przypadku wyzwalaczy z ograniczeniami, ocena warunku WHEN nie jest odroczona, ale następuje natychmiast po wykonaniu operacji aktualizacji wiersza. Jeśli warunek nie jest spełniony, triger nie jest umieszczany w kolejce do odroczonego wykonania.

function_name

Funkcja użytkownika, która nie przyjmuje żadnych argumentów i zwraca typ trigera, który jest wykonywany podczas wywołania trigera.

arguments

Opcjonalna lista argumentów oddzielonych przecinkami, które są przekazywane do funkcji podczas wykonywania trigera. Argumenty są literalnymi stałymi łańcuchowymi. Można tu również zapisać proste nazwy i stałe numeryczne, ale wszystkie one zostaną przekonwertowane na łańcuchy. Sprawdź opis języka implementacji funkcji trigera, aby dowiedzieć się, w jaki sposób te argumenty mogą być dostępne wewnątrz funkcji; może to być inne niż normalne argumenty funkcji.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.