[mysql] contrainte foreign key

guyom -  
blackbutterfly Messages postés 100 Statut Membre -
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

10 réponses

  1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    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
  2. Utilisateur anonyme
     
    A ma connaissance, MySql ne supporte pas les cles etrangeres... Vivent les jointures!!

    Fat_Cartman,
    Parce que je le vaux bien... 
    2
  3. bibi
     
    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
    1. tesniced
       
      les " ' " permet de protéger les champs !!!
      0
  4. Chewie
     
    Bonjour !

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

    Chewie :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    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
  7. bibi
     
    ... d'ou je lui ai spécifié la syntaxe (voir 1er post)
    0
  8. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    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
  9. basile
     
    bien sur que MySql suporte les clé etrangère verifie ton script
    0
  10. blackbutterfly Messages postés 100 Statut Membre 1
     
    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
    1. blackbutterfly Messages postés 100 Statut Membre 1
       
      Cela résous ton problème ?
      0