Partage
  • Partager sur Facebook
  • Partager sur Twitter

Foreign key

Sujet résolu
    1 décembre 2010 à 18:48:51

    Bonjour,
    j'ai un problème tout bête lorsque je veux créer une foreign key. Voici la création de la table:

    CREATE DATABASE gotosmile;
    
    USE gotosmile;
    
    CREATE TABLE gts_user
    (id_user integer NOT NULL auto_increment,
    pseudo varchar(40) NOT NULL,
    password varchar(100) NOT NULL,
    mail varchar(70) NOT NULL,
    primary key(id_user))ENGINE=INNODB;
    
    CREATE INDEX gts_friend
    (id_friend integer NOT NULL,
    id_friend_user integer FOREIGN KEY REFERENCES gts_user(id_user)
    primary key(id_friend))ENGINE=MYISAM;
    


    C'est donc dans gts_friend que j'ai un problème. Pourriez-vous m'aider?
    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2010 à 19:05:29

      ALTER TABLE gts_user
      ADD FOREIGN KEY (id_user)
      REFERENCES friend(id_friend)
      


      Je connais pas le nom de ta deuxième table, remplace par le bon.
      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2010 à 19:08:27

        ENGINE=MYISAM;

        tu ne peux pas créer de foreign key avec ça.
        • Partager sur Facebook
        • Partager sur Twitter
          1 décembre 2010 à 19:13:33

          Déjà utilise le même moteur de stockage pour toutes tes tables (préfère InnoDB à MyIsam afin de garantir l’intégrité référentielle des données)
          Ensuite utilise cette syntaxe pour créer tes index de clé étrangère:
          CREATE TABLE gts_friend(
          id_friend integer NOT NULL,
          id_friend_user integer ,
          constraint pk_friend primary key (id_friend),
          Constraint fk_user_friend FOREIGN KEY (id_friend_user) REFERENCES gts_user(id_user)
          )ENGINE=MyISAM;
          
          • Partager sur Facebook
          • Partager sur Twitter
            1 décembre 2010 à 19:17:59

            Merci à tous pour vos réponses, cela fonctionne!
            • Partager sur Facebook
            • Partager sur Twitter

            Foreign key

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown