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