Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL]probleme avec : 2 clées etrangeres

    23 novembre 2011 à 14:46:58

    Bonjours


    je fait simple mon code debut je suis en train de contruire ma base de données (enfin la structure que je remplis avec des exemples).

    voila donc j'ai la celebre erreur 1005 et voila mon bout de code :

    CREATE DATABASE pplc;
    USE PPLC;
    CREATE TABLE client
    (
            id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
            name_client VARCHAR(255) NOT NULL,
            commentaire TEXT,
            PRIMARY KEY (id)
    )
    ENGINE=INNODB;
    CREATE TABLE dossier
    (
            PRIMARY KEY (id),
            id  BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
            name_doss VARCHAR(255) NOT NULL,
            ref_doss BIGINT UNSIGNED,
            id_client MEDIUMINT UNSIGNED NOT NULL,
            nameclient VARCHAR(255) NOT NULL,
    ///////////////////////////////////////////////
    /////// trouver dans le forum de mysql. est-ce correct ?
            CONSTRAINT 
                    FOREIGN KEY (id_client, nameclient) 
            REFERENCES client(id, name_client) ON DELETE CASCADE ON UPDATE CASCADE
    ///////////
    // OU
    //////////
    CONSTRAINT fk_client_numero
                    FOREIGN KEY (id_client)
                    REFERENCES client(id),
            CONSTRAINT fk_client_name
                    FOREIGN KEY (name_client)
                    REFERENCES client(name_client)        
    ///////////////////////////////
    )
    ENGINE=INNODB;


    Et j'ai donc l'erreur 1005.
    Cela fonctionne si je retire name_client et que je ne garde qu'id. si vous avez une idee de pourquoi.
    Merci bien
    • Partager sur Facebook
    • Partager sur Twitter
      23 novembre 2011 à 19:00:20

      Bonsoir,

      As-tu des données dans ta tables qui ne respecteraient pas les contraintes d'intégrités ?
      D'autre part pour savoir exactement ton erreur après ta création de table tu peux essayer SHOW INNODB STATUS.
      Je pense que ton name_client n'est pas indexé et que c'est ça le problème.

      Romain
      • Partager sur Facebook
      • Partager sur Twitter

      [MySQL]probleme avec : 2 clées etrangeres

      × 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