FirebirdSQL logo

NEW

Disponible en

PSQL

Syntaxe
NEW

La variable contextuelle NEW est uniquement disponible dans le code des triggers de table. La valeur de NEW contient les nouvelles valeurs des champs de données qui sont apparues dans la base de données pendant l’opération de mise à jour ou d’insertion.

Dans les déclencheurs AFTER, la variable est en lecture seule.

Note

Pour les triggers de table déclenchés par plusieurs types d’événements, la variable NEW est toujours disponible. Cependant, dans le cas où le trigger est déclenché par une opération de suppression, une nouvelle version des données n’a pas de sens pour lui. Dans cette situation, la lecture de la variable NEW retournera toujours NULL.

Important

La tentative d’écrire dans la variable NEW dans le déclencheur AFTER provoquera une exception dans le code.

Example 1. Utilisation d’une variable NEW
...
  IF (NEW.SERIAL_NUM IS NULL) THEN
    NEW.SERIAL_NUM = GEN_ID (GEN_SERIALS, 1);
...

OLD

Disponible en

PSQL

Syntaxe
OLD

La variable contextuelle OLD est uniquement disponible pour le code du déclencheur. La valeur contenue dans OLD stocke les valeurs passées des champs qui étaient dans la base de données avant l’opération de modification ou de suppression.

La variable OLD est en lecture seule.

Note

Pour les déclencheurs de table déclenchés par plusieurs types d’événements, les valeurs de la variable OLD sont toujours possibles. Cependant, pour les déclencheurs déclenchés par l’insertion d’un enregistrement, la valeur de cette variable n’a pas de sens, donc dans cette situation la lecture de OLD retournera NULL et essayer d’y écrire provoquera une exception dans le code.

Example 1. Utilisation d’une variable OLD
...
  IF (NEW.QUANTITY IS DISTINCT FROM OLD.QUANTITY) THEN
    DELTA = NEW.QUANTITY - OLD.QUANTITY;
...