CODE RETOUR -548

A CHECK CONSTRAINT THAT IS DEFINED WITH column-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 
  < big 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’a 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 ROWID.
  • La définition de contrainte fait référence à une colonne LOB.
  • 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 contrainte contient une colonne XML.
  • La définition de contrainte contient une expression XMLQuery.
  • Une liste d’arguments XMLQUERY ou XMLEXISTS contenait deux arguments portant le même nom.
  • L’expression de colonne générée fait référence à une colonne pour un masque de colonne est défini.
  • La définition de contrainte contient une fonction intégrée qui dépend de la valeur d’un registre spécial.
  • La définition de contrainte contient une variable globale.

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