|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
Bonjour, je suis en train de développer une base de donnée sous mysql. Je souhaite ajouter des contraintes de domaine de valeurs sur certains attributs et cela ne fonctionne pas.
J'ai beau essayer de mettre n'importe quoi sur ces attributs et ça écrit quand même. J'ai fais pas mal de recherche depuis hier mais il y a pas grand chose à ce sujet. Merci d'avance de votre réponse. Voici le code Code :
Dernière modification par ced ; 17/03/2010 à 09h35. Motif: Merci d'utiliser la balise [CODE] (bouton #) |
||
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Inscription : juillet 2007 Messages : 135 ![]() |
Essaie ceci :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
Merci pour ta réponse, mais non je peux toujours faire entrer n'importe quoi...
|
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Inscription : juillet 2007 Messages : 135 ![]() |
Je viens de trouver une information qui dit que Mysql implémente Check
mais la clause n'est pas considérée d'où ton problème. Il propose une alternative c'est ENUM Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
J'avais aussi vu cet article. J'avais fais comme toi, et ça génère une erreur de syntaxe. En fait il faut créer une autre table avec un attribut. C'est ça l'énumération. Mais ils n'expliquent pas le lien avec une autre table.
|
|
|
00
|
|
|
#6 | |
|
Membre actif
![]() Inscription : juillet 2007 Messages : 135 ![]() |
Citation:
Si tu exécutes le script de création de table quelle erreur est générée? |
|
|
|
00
|
|
|
#7 | |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
Citation:
Dernière modification par al1_24 ; 17/03/2010 à 23h25. Motif: Balises QUOTE |
|
|
|
00
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Inscription : octobre 2009 Messages : 39 ![]() |
Bonjour
Le problème viens du fait que du déclare 2 types : char(9) et ENUM, la solution étant : Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
Super, ça marche
Maintenant j'ai 2 autres questions, comment je peux vérifier un nombre toujours positif, et faire en sorte qu'un attribut est toujours plus petit ou égal à un autre attribut de ma table. et comment vérifier qu'un attribut non clé d'une table soit égal à un autre attribut non clé d'un autre table si leurs clés sont égales (ça vient suite à une dé normalisation) Merci beaucoup |
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2009 Messages : 39 ![]() |
Pour des problèmes de ce genre là il va te falloir utiliser des triggers qui vont faire les requêtes de vérification ON UPDATE et ON INSERT puis lancer un rollback si il y'a une incohérence.
|
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
Oui, ça je l'ai fait. J'ai essayé le rollback mais c'est interdit dans un trigger
http://dev.mysql.com/doc/refman/5.0/...-triggers.html |
|
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2009 Messages : 39 ![]() |
Dans ce cas, tu fais ton trigger BEFORE X et tu lances une erreur..
|
|
|
00
|
|
|
#13 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
lancer une erreur par un raise application error ou abort?
|
|
|
00
|
|
|
#14 |
![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 778 ![]() |
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#15 | ||||
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
Merci beaucoup, ça peut marcher comme ça. Par contre j'ai une erreur de syntaxe que je n'arrive pas du tout à corriger. :
Code :
Le SGBD renvoie Code :
http://dev.mysql.com/doc/refman/5.5/en/signal.html Dernière modification par oneagaindoguys ; 18/03/2010 à 14h34. |
||||
|
|
00
|
|
|
#16 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : avril 2009 Messages : 386 ![]() |
Je n'ai toujours pas trouvé la solution, sur internet, c'est toujours la même syntaxe qui est utilisée. Je ne comprends rien !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com