|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Bonjour, je vous assure que j'ai fait le tour de tous les tutos, faq, forums possibles, mais j'ai le problème suivant : lorque je désire ardemment ajouter une clé étrangère via la commande suivante :
ALTER TABLE affcommune ADD CONSTRAINT typeAffDansListe FOREIGN KEY FKtypeAff (INDtypeAff) REFERENCES typeAff (PRIMARY) ON DELETE NO ACTION ON UPDATE NO ACTION mysql, via phpmyadmin, m'envoie, si je puis m'exprimer ainsi, proprement chier. Le gars dans l'ordinateur voit une erreur de syntaxe. Qui veux bien éclairer le ciel obscur de mon ignorance ? Je précise que j'utilise Innodb (normalement, mais comment le vérifier pour en être certain ? je sais juste que skip-innodb est commenté dans mysql.ini) |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : avril 2004 Messages : 734 ![]() |
Bonjour,
Voici une adresse qui donnera surement l'explication : http://dev.mysql.com/doc/refman/5.0/...nstraints.html On peut notamment voir que la clause REFERENCES est mal remplie |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Merci de ta réponse Adjanakis. Malheureusement je dois être un puit de bêtise sans fond parce que je ne vois pas où est l'erreur dans references ?? typeAff est bien une table et PRIMARY est bien le nom de sa clé primaire, alors quid ??
|
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() ![]() Pierre Ingénieur qualité méthodes Inscription : mars 2003 Messages : 3 726 ![]() |
Citation:
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet) ----------------------- Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MPUsus magister est optimus |
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Merci de ta réponse. Non, c'est son nom d'index. La colonne s'appelle 'libelle'. D'après ce que j'ai compris de la syntaxe, c'est le nom d'index qu'il faut préciser, non ?
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Juste au cas où, est-ce que le problème pourrait venir du fait que ma colonne référencé en tant que clé étrangère dans la table fille n'a pas encore de valeurs ? (j'essaie toutes les hypothèses!)
|
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() Pierre Ingénieur qualité méthodes Inscription : mars 2003 Messages : 3 726 ![]() |
Citation:
![]() Citation:
En plus, si la colonne référencée ne fait pas l'objet d'un index, il faut en créer un : cf http://www.developpez.net/forums/viewtopic.php?t=481922
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet) ----------------------- Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MPUsus magister est optimus |
||
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 110 ![]() |
Ok, ça marche, merci beaucoup ! Effectivement il faut mettre les noms de colonne et ne pas se fier à la syntaxe officielle suivante :
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name (index_col_name, ...) qui est quand même trompeuse ! Pour moi index_col_name ça veut dire nom de l'index de colonne, merde !!!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com