FirebirdSQL logo

LOCALTIMESTAMP

Disponible en

DSQL, PSQL, ESQL

Syntaxe
LOCALTIMESTAMP [(<precision>)]

<precision> ::= 0 | 1 | 2 | 3
Table 1. Contexte Paramètres de la variable LOCALTIMESTAMP
Paramètre Description

precision

Précision. La valeur par défaut est 3. Non supporté dans ESQL.

type de résultat de retour

TIMESTAMP WITHOUT TIME ZONE

La variable LOCALTIMESTAMP renvoie la date et l’heure actuelles dans le fuseau horaire de la session, sans information sur le fuseau horaire. La précision détermine le nombre de décimales à considérer dans les fractions de seconde. La précision par défaut est de 3.

Note

Dans un bloc de code PSQL (procédure, trigger, bloc exécutable), la valeur de LOCALTIMESTAMP ne change pas au cours de son exécution. Lors de l’appel d’un code imbriqué, la valeur ne changera pas non plus et sera égale à la valeur du code de niveau supérieur. Utilisez CAST('NOW' AS TIMESTAMP WITHOUT TIME ZONE) pour définir le temps réel.

Example 1. Utilisation d’une variable LOCALTIMESTAMP
SELECT LOCALTIMESTAMP(2) FROM RDB$DATABASE;
-- le résultat sera (par exemple) 02.03.2014 23:35:33.1200

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;
...

RESETTING

Disponible en

PSQL

Syntaxe
RESETTING
type de résultat de retour

BOOLEAN

La variable contextuelle RESETTING n’est disponible que pour les déclencheurs d’événements ON CONNECT et ON DISCONNECT et peut être utilisée partout où un prédicat logique peut être utilisé. La variable système RESETTING permet de détecter quand un déclencheur de base de données est déclenché par une réinitialisation de session, par exemple avec l’instruction ALTER SESSION RESET. Sa valeur est TRUE si une réinitialisation de session est effectuée, et FALSE sinon.

Example 1. Utilisation d’une variable RESETTING
...
IF (RESETTING) THEN
BEGIN
  -- la session est réinitialisée
END
...
Voir aussi :

ALTER SESSION RESET.