Nouvelles et anciennes variables de contexte
Dans les triggers DML, Firebird donne accès à un ensemble de variables contextuelles NEW et OLD.Chaque ensemble est un tableau de la chaîne entière : OLD.* — la valeur de la chaîne avant la modification des données et NEW.* — la valeur de la chaîne requise ("nouvelle").Les Instructions peuvent s’y référer en utilisant les formes suivantes : NEW.columnname et OLD.columnname.La colonne columnname_ peut être n’importe quelle colonne définie dans la table (vue), pas seulement celle qui a été modifiée.
Les variables de contexte NEW et OLD obéissent aux règles suivantes :
-
Dans tous les déclencheurs, les variables de contexte
OLDsont en lecture seule ; -
Dans les déclencheurs
BEFORE UPDATEetBEFORE INSERT, les variablesNEWsont en lecture seule et en écriture seule sauf pour les colonnesCOMPUTED BY; -
Dans les déclencheurs
INSERT, la référence aux variablesOLDn’est pas autorisée et lèvera une exception ; -
Dans les déclencheurs
DELETE, la référence aux variablesNEWn’est pas autorisée et soulèvera une exception ; -
Dans tous les déclencheurs
AFTER, les variablesNEWsont en lecture seule.