{Oracle} check non exécuter

Résolu/Fermé
haroun- Messages postés 708 Date d'inscription dimanche 13 avril 2008 Statut Membre Dernière intervention 17 décembre 2021 - 1 janv. 2010 à 20:40
haroun- Messages postés 708 Date d'inscription dimanche 13 avril 2008 Statut Membre Dernière intervention 17 décembre 2021 - 2 janv. 2010 à 12:05
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
A voir également:

5 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
2 janv. 2010 à 11:00
Tu as essayé de faire un insert avec une valeur null sur cette colonne?
Si oui quel en est le resultat??
0
haroun- Messages postés 708 Date d'inscription dimanche 13 avril 2008 Statut Membre Dernière intervention 17 décembre 2021 3
2 janv. 2010 à 11:07
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
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
2 janv. 2010 à 11:26
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....
0
haroun- Messages postés 708 Date d'inscription dimanche 13 avril 2008 Statut Membre Dernière intervention 17 décembre 2021 3
2 janv. 2010 à 11:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
2 janv. 2010 à 12:03
Si ton champs est une clé primaire, il ne peut etre null!!
Mais dans ce cas dans la table 'fille' où la clé est une clé etrangere ne met pas de contraintes null sur cet clé mais plutot une contrainte sur clé etrangere...
http://www.dba-oracle.com/art_builder_ri.htm
0
haroun- Messages postés 708 Date d'inscription dimanche 13 avril 2008 Statut Membre Dernière intervention 17 décembre 2021 3
2 janv. 2010 à 12:05
merci Chuka
0