A triggerek olyan aktív elemek, amelyek bizonyos események hatására jönnek működésbe. Ilyen esemény lehet pl.: 1 adott relációba való beszúrás. Az SQL3-as szabványban szerepelnek.
A triggerek (esemény – feltétel - művelet szabályok) a megszorításoktól 3 dologban térnek el:
- A triggereket a rendszer csak akkor ellenőrzi, ha bizonyos adatbázis-programozó által megadott események bekövetkeznek. A megengedett események általában 1 adott relációra vonatkozó beszúrás, törlés és módosítás, vagy a tranzakció befejeződése.
- A kiváltó esemény azonnali megakadályozása helyett a trigger először 1 feltételt vizsgál meg. Ha a feltétel nem teljesül, akkor a kiváltó eseményre válaszul a triggerrel összefüggésben semmi sem fog történni.
- Ha trigger feltétel teljesül, akkor a rendszer végrehajtja a triggerhez tartozó műveletet. Ez a művelet ezután megakadályozhatja a kiváltó esemény megtörténtét v. meg nem történtté teheti azt.
A megadott művelet adatbázis-műveletnek 1 tetszőleges sorozata lehet, akár olyan műveleteket is tartalmazhat, amelyeknek semmi köze nincs a kiváltó eseményhez.
SQL3 triggerei: Különböző lehetőséget kínál a felhasználónak az eseményre, a feltételre és a műveletre vonatkozó részében:
- A műveletet végrehajtjuk a kiváltó esemény előtt, után v. helyette.
- A művelet hivatkozhat a műveletet kiváltó esemény által törölt, beszúrt v. módosított sorok régi és új értékeire is.
- Ha az esemény módosítás, akkor megadhatunk 1 bizonyos oszlopot v. oszlopok 1 halmazát, amelyre az esemény vonatkozik.
- 1 WHEN záradékában megadhatunk 1 feltételt, és a műveletet csak akkor hajtja végre a rendszer, ha a szabály kiváltódik és a kiváltó esemény bekövetkezésekor a feltétel igaz.
- A programozó megadhatja, hogy a művelet végrehajtása a köv. 2 lehetőség közül melyik módon történjen meg: - Minden módosított sorra egyszer, vagy
- 1 adatbázis-művelet által módosított összes sorra vonatkozóan egyszer.