|
Popis triggeru | Triggery | Volání triggerů při ukládání změn ve formuláři |
Syntaxe UPDATE triggeru dovoluje uvést seznam sloupců, při jejichž změně se má trigger spustit. Příkaz UPDATE nebo API funkce Write_record_ex mohou modifikovat najednou celou množinu sloupců. Norma SQL není zcela jasná v tom, v jakém vztahu musí být seznam sloupců uvedených v definici triggeru a množina měněných sloupců, aby došlo ke spuštění triggeru.
V prvních verzích 602SQL serveru se spouštěl trigger tehdy, když byly obě skupiny sloupců stejné. Od verze 8.0 je tato možnost nadále zachována, ale přibyla alternativní možnost spouštět trigger, když obě množiny mají neprázdný průnik, tedy když je příkazem změněn alespoň jeden ze sloupců, které jsou uvedeny v seznamu.
Pravidla pro spouštění triggeru lze zvolit dvojím způsobem:
Příklad:
TRIGGER `Aktualizace_obj` AFTER UPDATE OF ANY zpracovana,storno_dat,storno,d_uhrady ON `Obj_hlav` /****************************************************/ // při změně kteréhokoliv z vyjmenovaných sloupců se zapíše akt. timestamp k objednávce REFERENCING OLD AS `old` NEW AS `new` FOR EACH ROW BEGIN IF (old.zpracovana<>new.zpracovana) OR (old.storno_dat<>new.storno_dat) OR (old.storno<>new.storno) OR (old.d_uhrady<>new.d_uhrady) THEN SET new.dat_akt=CURRENT_TIMESTAMP; END IF; END
Popis triggeru | Triggery | Volání triggerů při ukládání změn ve formuláři |