2012-11-14 5 views
0

J'ai une table nommée problème. Il a un type de nom de colonne. Je veux limiter l'utilisateur en lui permettant d'entrer seulement six valeurs. Quand j'écris mon code, il est dit que ma requête a été ajoutée avec succès, elle ne fonctionne toujours pas. Je peux toujours ajouter des valeurs en dehors de mes contraintes. Toute aide serait appréciée. Merci d'avance. Mon code a été donné ci-dessous.Ma contrainte de vérification ne fonctionne pas

alter table problem 
add constraint chk_type check (type in ('adhoc', 'mathematics', 'graph_theory', 'data_structure', 'dynamic_programming', 'computational_geometry')); 
+2

Eh bien, vous pouvez les avoir, mais ils ne fonctionnera pas par leur conception, comme MySQL ne tient pas compte des contraintes de vérification. Je recommande de créer une table différente (par exemple: 'types') et d'appliquer une contrainte de clé étrangère. Vous pouvez également utiliser des déclencheurs, mais je préfère ne pas y aller. – NullUserException

+1

@NullUserException: Votre commentaire est une bonne réponse à mon humble avis. –

+0

-1: C'est partout dans le manuel, c'est partout sur le web, et même dans SO. Les contraintes de vérification sont analysées, mais ignorées par tous les moteurs de MySQL. Cela n'a vraiment pas besoin d'être demandé ici, google aurait répondu pour vous. – MatBailie

Répondre

0

Essayez celui-ci:

ALTER TABLE passager ADD CONSTRAINT statut_chk CHECK statut in ('Frequent Flyer','Occasionnel','Junior'); 
Questions connexes