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
OLD
sont en lecture seule ; -
Dans les déclencheurs
BEFORE UPDATE
etBEFORE INSERT
, les variablesNEW
sont en lecture seule et en écriture seule sauf pour les colonnesCOMPUTED BY
; -
Dans les déclencheurs
INSERT
, la référence aux variablesOLD
n’est pas autorisée et lèvera une exception ; -
Dans les déclencheurs
DELETE
, la référence aux variablesNEW
n’est pas autorisée et soulèvera une exception ; -
Dans tous les déclencheurs
AFTER
, les variablesNEW
sont en lecture seule.