[mysql] contrainte foreign key

Fermé
guyom - 23 mai 2003 à 11:19
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 - 18 avril 2012 à 16:28
salut,

je voudrai juste savoir si mysql supporte les contrainte de clé étrangère car lorsque j'execute une commande de creation de table contenant ce type de contrainte j'ai le message :
Something is wrong in your syntax près de 'REFERENCE `agence`(`agenceId`))'

y'a t'il une erreur de syntaxe???
merci a +
guyom
A voir également:

10 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
23 mai 2003 à 12:07
Salut tous !

Ama connaissance Mysql ne tiens pas compte des clés etrangeres, cependant leurs utilisation dans les requetes de creations de tables ne devrait pas gener mysql (pour une question de compatibilitée avec les autres sgbd en cas de migration) donc s'il te dit qu'il y a un pb , c'est surment une erreur de syntaxe.

Bilan:
-tu peux declarer les foreign keys dans l'optique d'une migrations.
-elles ne te servirons a rien tant que tu sera sous mysql.

ps: je peux me tromper je ne sais pas ou ils en sont mais au pire le changement serait qu'elle servent aussi sous mysql donc c'est certainement une erreur de syntaxe.

@++


Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
4
Utilisateur anonyme
23 mai 2003 à 12:01
A ma connaissance, MySql ne supporte pas les cles etrangeres... Vivent les jointures!!

Fat_Cartman,
Parce que je le vaux bien... 
2
ca dépend man,...

cest koé ta version de MySQL?

sinon vire déja ces " ' " merdik et fait plutot comme ceci
----------------------------------------------------
FOREIGN KEY (FK_agence_Id) REFERENCES agence(PK_agence_Id)
----------------------------------------------------

Good luck mec !
0
les " ' " permet de protéger les champs !!!
0
Bonjour !

Je pense pouvoir confirmer l'affirmation de fat_cartman...

Chewie :)
0

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

Posez votre question
pffffff !!!!!


cé bien pour ca ke je lui demande kel version de mysql !!!!!!!!

il faut kil utilise le format InnoDB
voir -> http://dev.nexen.net/news/gen.php3/2002/08/07/917,0,1,0,0.html

pigetti les gars ?????!!!!!!
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
23 mai 2003 à 12:21
Ya pas de soucis,

Je disais juste que quelque soit sa version, c'est une erreur de syntaxe puisque les foreign keys sont prensentes pour la compatibilité depuis bien longtemps...

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
0
... d'ou je lui ai spécifié la syntaxe (voir 1er post)
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
23 mai 2003 à 12:31
ok

ceci dit le "ca dependant" prete a confusion...

je l'ai compris comme ca...
=> si t as une vieillee version c normale
sinon c'est ue erreur de syntaxe

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
0
bien sur que MySql suporte les clé etrangère verifie ton script
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
Modifié par blackbutterfly le 18/04/2012 à 15:25
pour faire passer une clef étrangère sur mysql il faut d'abord déclarer la column que tu veux mettre en foreign et après tu fait la ligne de commande comme l'exemple te montre :

create table troll (
id_troll int(10) auto_increment,
primary key(id_troll));

create table lolol (
id_lol int(10) auto_increment,
rickroll varchar(100) not null,
id_troll int(10),
primary key (id_lol),
constraint id_Troll_fkey foreign key (id_troll) references troll (id_troll));

Et là ça devrais tourner ;)
"Le hasard n'existe pas, tout est inéluctable."
0
blackbutterfly Messages postés 95 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 29 mai 2012 1
18 avril 2012 à 16:28
Cela résous ton problème ?
0