Spouště

1. Spoušť - Trigger

Popis

Spoušť (angl. trigger) je v databázi pojmenovaný objekt, který definuje činnost, která se vykoná automaticky s příkazem INSERT, UPDATE nebo DELETE nad tabulkou, ke které je spoušť asociovaná. Nejčastěji se používá jako kontrolní mechanismus při provádění operací s citlivými daty prostřednictvím zmíněných operací. V případě existující spouště na konkrétní akci určité tabulky se provedou příkazy uzavřené v sekci BEGIN - END. Je-li příkaz jen jeden, lze klíčová slova BEGIN a END vynechat. Podle definice spouště se sekvence příkazů provede buď před vykonáním příkazu (BEFORE), po vykonání příkazu (AFTER) a nebo místo vykonání příkazu. Pomocí klíčového slova WHEN lze definovat podmínky, na které záznamy se má trigger aplikovat.

Pokud je odstraněna databázová tabulka, jsou zároveň odstraněny všechny k ní asociované spouště. To neplatí, pokud je spoušť asociovaná i k jiné tabulce.

V průběhu vykonávání spouště lze přistupovat k datům právě zpracovávaného záznamu pomocí klíčových slov OLD (OLD.jmeno_sloupce) a NEW (NEW.jmeno_sloupce). Jejich dostupnost je však logicky závislá na typu operace

  • INSERT - pouze NEW
  • UPDATE - NEW a OLD
  • DELETE - pouze OLD

Syntaxe

Vytvoření spouště

CREATE TRIGGER jmeno_spouste

[BEFORE | AFTER | INSTEAD OF] [INSERT | UPDATE | DELETE]

ON jmeno_tabulky

[WHEN podminka]

BEGIN

prikazy

END;

Odstranění spouště

DROP TRIGGER jmeno_spouste;

Příklad