CREATETRIGGER

name

Název, který se dá novému triggeru. Tento název musí být odlišný od názvu jakéhokoli jiného spouštěče pro stejnou tabulku. Název nemůže být kvalifikovaný na schéma – spouštěč zdědí schéma své tabulky. Pro omezující spouštěč je to také název, který se použije při úpravě chování spouštěče pomocí SET CONSTRAINTS.

BEFORE
AFTER
INSTEAD OF

Určuje, zda se funkce zavolá před, po nebo místo události. Spouštěč omezení lze zadat pouze jako PO.

událost

Jedna z možností INSERT, UPDATE, DELETE nebo TRUNCATE; určuje událost, která spouštěč vyvolá. Více událostí lze zadat pomocí OR.

Pro události UPDATE je možné zadat seznam sloupců pomocí této syntaxe:

UPDATE OF column_name1 

Spustitel se spustí pouze tehdy, pokud je alespoň jeden ze sloupců uvedených v seznamu uveden jako cíl příkazu UPDATE.

Události INSTEAD OF UPDATE nepodporují seznamy sloupců.

tabulka

Název (případně kvalifikovaný podle schématu) tabulky nebo pohledu, pro který je spouštěč určen.

název_referované_tabulky

Název (případně kvalifikovaný podle schématu) jiné tabulky, na kterou se omezení odkazuje. Tato volba se používá pro omezení s cizím klíčem a nedoporučuje se pro obecné použití. Lze ji zadat pouze pro spouštěče omezení.

DEFERRABLE
NOT DEFERRABLE
INITIALLY IMMEDIATE
INITIALLY DEFERRED

Výchozí načasování spouštěče. Podrobnosti o těchto možnostech omezení najdete v dokumentaci CREATE TABLE. Toto lze zadat pouze pro omezující spouštěče.

FOR EACH ROW
FOR EACH STATEMENT

Uvádí, zda se má spouštěcí procedura spustit jednou pro každý řádek ovlivněný spouštěcí událostí, nebo pouze jednou pro každý příkaz SQL. Pokud není zadáno ani jedno, je výchozí FOR EACH STATEMENT. Spouštěče s omezením lze zadat pouze FOR EACH ROW.

podmínka

Booleovský výraz, který určuje, zda se spouštěcí funkce skutečně provede. Pokud je zadáno KDYŽ, bude funkce vyvolána pouze v případě, že podmínka vrátí hodnotu true. U spouštěčů FOR EACH ROW může podmínka WHEN odkazovat na sloupce hodnot starého a/nebo nového řádku zápisem OLD.column_name, respektive NEW.column_name. Spouštěče INSERT samozřejmě nemohou odkazovat na OLD a spouštěče DELETE nemohou odkazovat na NEW.

Spouštěče INSTEAD OF nepodporují podmínky WHEN.

V současné době nemohou výrazy WHEN obsahovat poddotazy.

Všimněte si, že u spouštěčů omezení není vyhodnocení podmínky WHEN odloženo, ale nastane ihned po provedení operace aktualizace řádku. Pokud se podmínka nevyhodnotí jako pravdivá, pak spouštěč není zařazen do fronty pro odložené provedení.

název_funkce

Uživatelem zadaná funkce, která je deklarována jako funkce nepřijímající žádné argumenty a vracející typ spouštěč, která je provedena při spuštění spouštěče.

argumenty

Nepovinný čárkou oddělený seznam argumentů, které mají být funkci poskytnuty při spuštění spouštěče. Argumenty jsou doslovné řetězcové konstanty. Lze sem zapsat i jednoduché názvy a číselné konstanty, ale všechny budou převedeny na řetězce. Zjistěte prosím v popisu implementačního jazyka spouštěcí funkce, jak lze k těmto argumentům v rámci funkce přistupovat; může se to lišit od běžných argumentů funkce.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.