{Oracle} check non exécuter

Résolu
Bonjour,
je voulais ajouter une contrainte sur un attribut d'une table de la base de donnée que j'ai crée
j'ai utiliser la méthode suivante :

alter table demande
add constraint check_n check (n is not null);

cette instruction a été bien exécuter et la constraint a été bien crée
sauf que lorsque je vois dans mon navigateur d'objets je trouves que l'attribut n peut toujours avoir la valeur NULL
es ce que quelqu'un pourrais me dire pourquoi ce check n'as pas été appliqué svp
merci
Configuration: Windows XP
Firefox 3.0.16

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Tu as essayé de faire un insert avec une valeur null sur cette colonne?
    Si oui quel en est le resultat??
    1. bonjour
      je ne suis pas arrivé au stade d'insertion de donnée
      mais ce qui m'étonne pour l'instant c'est que l'attribut est défini comme étant nullable malgré que j'ai fait un check is not null apres la création de la table
      comment peut on corrigé ça ?
      merci
      1. Salut,
        ben en fait je pense que cela est logique:
        Etant donné que tu n'as pas mis comme propriété sur la colonne not null, mais une contrainte...le type est donc a priori nullable....
        C'est une fois que l'insert,update va etre effectué que la contrainte va etre verifiée, et donc normallement rejeté si tu mets une valeur null....
        1. ok
          encore une petite chose
          enfin pas trop quand même
          l'attribut sur le quel j'ai fait le check après la création des tables fait référence a un attribut d'une autre table par une clé étrangère
          doit je alors faire un check is not NULL sur la clé primaire pour que les deux tables soit toujours en 'relation'
          a ce que je sais
          l'attribut d'un clé primaire et l'attribut d'une clé étrangère doivent avoir le même type
          es ce que ils doivent avoir aussi les mêmes constraint check