CODE RETOUR -546

THE CHECK CONSTRAINT constraint-name IS INVALID

Explication
Une contrainte de vérification dans l’instruction CREATE TABLE ou ALTER TABLE n’est pas valide pour une ou plusieurs des raisons suivantes :

  • La définition de contrainte fait référence à une colonne qui a une procédure de champ.
  • La définition de contrainte fait référence à une colonne avec un type de données qui est plus bas dans la hiérarchie des types de données numériques que le type de données de tout autre opérande. La hiérarchie est la suivante :
small integer < large integer < decimal  
< single precision float 
< double precision float
  • La définition de contrainte fait référence à une colonne avec un type de données numériques qui n’est pas le même type de données numériques que celui des autres opérandes de colonne.
  • La définition de contrainte fait référence à une colonne dont la longueur est plus courte que les autres opérandes lorsque la colonne et les autres opérandes ne sont pas des types de données chaîne de caractères.
  • La définition de contrainte fait référence à une colonne DECFLOAT.
  • La définition de contrainte fait référence à une colonne Unicode Db2 11 dans une table EBCDIC.
  • La définition de contrainte fait référence à une fonction intégrée ou définie par l’utilisateur.
  • La définition de contrainte utilise une fonction de conversion qui nécessite la conversion des données. Les seules fonctions autorisées dans une contrainte de vérification sont les fonctions de conversion qui ne nécessitent pas de conversion des données.
  • La définition de contrainte contient une variable globale.
  • La contrainte contient une colonne XML
  • La définition de contrainte contient une expression XMLQuery.

constraint-name
Nom de la contrainte de vérification.

Action du système
L’instruction ne peut pas être traitée.

Pour ALTER TABLE, la contrainte de vérification n’est pas ajoutée à la table d’objets. La définition de la table est inchangée.

Pour CREATE TABLE, la table n’est pas créée.

Réponse du programmeur
Corrigez la définition de la contrainte de vérification et exécutez à nouveau l’instruction.

SQLSTATE
42621