FirebirdSQL logo
 DOMAININDEX 

Contrainte CHECK

La contrainte CHECK spécifie la condition que les valeurs placées dans cette colonne doivent satisfaire.Une condition est une expression logique, également appelée prédicat, qui peut renvoyer les valeurs TRUE, FALSE, et UNKNOWN. La condition est satisfaite si le prédicat renvoie TRUE ou UNKNOWN (équivalent à NULL). Si le prédicat renvoie FALSE, la valeur ne sera pas acceptée.Cette condition est utilisée lors de l’ajout d’une nouvelle ligne à la table (l’opérateur INSERT) et lors du changement d’une valeur existante d’une colonne de la table (l’opérateur UPDATE) ainsi que les opérateurs dans lesquels une de ces actions peut se produire (UPDATE OR INSERT, MERGE).

Important

Lorsque vous utilisez la phrase CHECK pour une colonne basée sur un domaine, n’oubliez pas que l’expression dans CHECK ne fait que compléter une condition de vérification qui peut déjà être définie dans le domaine.

Au niveau de la colonne ou de la table, l’expression dans la phrase CHECK fait référence à la valeur entrante en utilisant les identifiants de colonne, contrairement aux domaines où la contrainte CHECK utilise le mot-clé VALUE à cette fin.

Example 1. Vérifier les limites des niveaux de colonnes et de tables
CREATE TABLE PLACES (
  ...
  LAT DECIMAL(9, 6) CHECK (ABS(LAT) <= 90),
  LON DECIMAL(9, 6) CHECK (ABS(LON) <= 180),
  ...
  CONSTRAINT CHK_POLES CHECK (ABS(LAT) < 90 OR LON = 0)
);

Privilèges d’exécution

La clause optionnelle SQL SECURITY dans la spécification de la table permet de spécifier avec quels privilèges les colonnes calculées sont calculées.Si l’option INVOKER est sélectionnée, les colonnes calculées le sont avec les privilèges de l’utilisateur appelant.Si l’option DEFINER est sélectionnée, les colonnes calculées sont calculées avec les privilèges de l’utilisateur définissant (propriétaire). Par défaut, les colonnes calculées sont calculées avec les privilèges de l’utilisateur appelant.En outre, les triggers héritent des privilèges d’exécution des tables, s’ils ne sont pas surchargés dans les triggers eux-mêmes.

Tip

Les privilèges d’exécution par défaut pour les objets de métadonnées nouvellement créés peuvent être modifiés à l’aide de la commande

ALTER DATABASE SET DEFAULT SQL SECURITY {DEFINER | INVOKER}