Mikor kell sorszintű és mikor utasításszintű trigger használni?
A sorszintű- és az utasításszintű triggerek között az a különbség, hogy a sorszintű triggerek az aktualizálási művelet minden egyes érintett sora esetében végrehajtódnak, míg az utasításszintű triggerek csak az utasítás során egyszer hajtódnak végre.
Ha a triggerben szerepel a FOR EACH ROW kifezés, akkor sorszintű triggerről van szó, ha nem szerepel, akkor utasításszintű triggerről van szó.
Néhány eset, amikor sorszintű-, illetve amikor utasításszintű triggert kell használni. Most sem részletezünk konkrét adatbázist.
- Tegyük fel, hogy egy termékcsoport árát megváltoztatjuk, például 10% olcsóbban adjuk. Az ár változását szeretnénk egy NAPLÓ táblában rögzíteni minden termék esetén. Ekkor sorszintű triggert kell használnunk, mert minden érintett sor változását naplóznunk kell.
- Tegyük fel, hogy az online áruházunkban a felhasználói pontokat jóváírjuk a fizetéskor. Ekkor elegendő utasításszintű triggert használni.
- Tegyük fel, hogy a dolgozók fizetésemelésekor egy triggert szeretnénk arra használni, hogy figyelje és figyelmeztessen, ha egy dolgozó fizetése átlép egy korlátot. Ekkor sorszintű triggert kell használnunk, mert minden egyes érintett rekord esetében meg kell vizsgálni azt, hogy átlépte-e a korlátot.
- Munka másolatot csinálunk egy tábla tartalmáról. Ezt a műveletet szeretnénk naplózni. Ezt utasításszintű triggerrel kell megcsinálni, mivel nem kell minden egyes átmásolt rekordról naplóbejegyzés.