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.