CREATETRIGGER

name

Az új trigger nevének megadása. Ennek meg kell különböztetni az ugyanarra a táblára vonatkozó bármely más trigger nevétől. A név nem lehet séma-kvalifikált – a kiváltó a tábla sémáját örökli. Kényszer-trigger esetén ez a név akkor is használható, ha a SET CONSTRAINTS használatával módosítjuk a trigger viselkedését.

BEFORE
AFTER
INSTEAD OF

Meghatározza, hogy a függvényt az esemény előtt, után vagy helyett hívjuk meg. A korlátozó trigger csak AFTER-ként adható meg.

event

Egy az INSERT, UPDATE, DELETE vagy TRUNCATE közül; ez határozza meg azt az eseményt, amely a trigger-t kioldja. Több eseményt is meg lehet adni a VAGY használatával.

UPDATE esemény esetén lehetőség van oszlopok listájának megadására a következő szintaxissal:

UPDATE OF column_name1 

A trigger csak akkor fog tüzelni, ha a felsorolt oszlopok közül legalább egy az UPDATE parancs céljaként szerepel.

INSTEAD OF UPDATE események nem támogatják az oszlopok listáit.

table

A tábla vagy nézet (opcionálisan séma-minősített) neve, amelyre a trigger vonatkozik.

referenced_table_name

A korlátozás által hivatkozott másik tábla (esetleg séma-minősített) neve. Ez az opció idegen kulcsú korlátozásokhoz használatos, és általános használatra nem ajánlott. Csak kényszer-triggereknél adható meg.

DEFERRABLE
NOT DEFERRABLE
INITIALLY IMMEDIATE
INITIALLY DEFERRED

A trigger alapértelmezett időzítése. A CREATE TABLE dokumentációban találhatók e korlátozási lehetőségek részletei. Ez csak korlátozó triggerek esetén adható meg.

FOR EACH ROW
FOR EACH STATEMENT

Ez azt határozza meg, hogy a triggereljárás minden, a triggeresemény által érintett sorra egyszer, vagy SQL-kijelentésenként csak egyszer legyen elsütve. Ha egyik sincs megadva, akkor a FOR EACH STATEMENT az alapértelmezett. A kényszer-triggereket csak FOR EACH ROW lehet megadni.

condition

Egy bóluszi kifejezés, amely meghatározza, hogy a triggerfüggvény valóban végrehajtásra kerül-e. Ha WHEN van megadva, a függvény csak akkor hívódik meg, ha a feltétel igazat ad vissza. A FOR EACH ROW triggerekben a WHEN feltétel hivatkozhat a régi és/vagy az új sorértékek oszlopaira az OLD.column_name, illetve NEW.column_name írásával. Természetesen az INSERT-triggerek nem hivatkozhatnak az OLD-ra, a DELETE-triggerek pedig az NEW-ra.

AINSTEAD OF-triggerek nem támogatják a WHEN-feltételeket.

A WHEN-kifejezések jelenleg nem tartalmazhatnak alkérdéseket.

Megjegyezzük, hogy a kényszertriggerek esetében a WHEN-feltétel kiértékelése nem halasztódik, hanem közvetlenül a sorfrissítési művelet végrehajtása után történik. Ha a feltétel nem értékelődik ki igazra, akkor a kiváltó nem kerül sorba halasztott végrehajtásra.

function_name

A felhasználó által megadott függvény, amely úgy van deklarálva, hogy nem fogad el argumentumokat és a trigger típusát adja vissza, és amely a kiváltáskor végrehajtásra kerül.

arguments

A kiváltó végrehajtásakor a függvénynek megadandó argumentumok opcionális, vesszővel elválasztott listája. Az argumentumok szó szerinti string konstansok. Egyszerű nevek és numerikus konstansok is írhatók ide, de ezek mind karakterláncokká lesznek konvertálva. Kérjük, ellenőrizze a trigger függvény implementációs nyelvének leírását, hogy megtudja, hogyan lehet ezeket az argumentumokat a függvényen belül elérni; ez eltérhet a normál függvény argumentumoktól.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.