Trigger (databáze)

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání

Trigger (česky spoušť) v databázi definuje činnosti, které se mají provést v případě definované události nad databázovou tabulkou. Definovanou událostí může být například vložení nebo smazání dat. Jednoduchá spoušť, která se má provést před vložením nového záznamu do tabulky může mít v SQL zápis:

 CREATE TRIGGER jmeno_triggeru BEFORE INSERT
     ON jmeno_tabulky
 BEGIN
     -- samotný kód spouště
 END;

Tato spoušť před vložením dat do jmeno_tabulky provedou příkazy vložené mezi BEGIN a END. Pokud je spouštěný příkaz jen jeden, může být blok BEGIN…END vynechán.

Obsah

[editovat] Parametry syntaxe

  • Pokud již trigger daného jména existuje a chceme ji změnit, místo CREATE použijeme REPLACE.
  • Chceme-li trigger smazat, použijeme příkaz: DROP TRIGGER jmeno_triggeru;
  • Klíčové slovo INSERT indikuje, že trigger se spustí při vkládání do databáze. Místo něj může být též UPDATE nebo DELETE.
  • Klíčové slovo BEFORE indikuje, že se trigger spustí před (v tomto případě) vkládání záznamu. Pokud by bylo místo něj AFTER, spustil by se trigger poté.

[editovat] Sémantika triggerů

Triggery jako takové jsou definovány ve většině moderních databázových systémů, ovšem mírně se liší v sémantice svého provedení. Klíčové rozdlíly jsou zejména v

  • kdy přesně se trigger spustí
  • jak proběhne (co ho může přerušit)
  • jakým způsobem se řeší vzájmné volání triggerů
  • jak (a jestli vůbec) jsou ošetřeny nekonečné cykly vzájemného volání

[editovat] Související články

[editovat] Externí Odkazy