IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Problème avec foreign keys sur plusieurs colonnes


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Problème avec foreign keys sur plusieurs colonnes
    Bonjour,

    J'expose mon problème qui me rends chèvre depuis 1 heure et demi, et j'espère avoir une réponse car je vais bientôt effectuer un hurlement primaire!!

    Je voudrais créer une contrainte de clés étrangères sur plusieurs colonnes d'une autre table, jusque là rien de bien compliqué...

    J'essaye une requête, puis après dans phpmyadmin je regarde si mes contraintes d'intégrités sont prises en compte,... et bien non, il ne prends que la première des 2 colonnes que j'ai déclaré (pourtant l'index est bien crée sur les 2 colonnes) !!

    J'ai même essayé avec l'exemple donné sur le site de mysql (code ci dessous), qui me donne le même résultat (j'ai essayé sur un serveur Mysql 5.0 et 5.1 dans le doute)!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,
                          price DECIMAL,
                          PRIMARY KEY(category, id)) TYPE=INNODB;
    CREATE TABLE customer (id INT NOT NULL,
                          PRIMARY KEY (id)) TYPE=INNODB;
    CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT,
                          product_category INT NOT NULL,
                          product_id INT NOT NULL,
                          customer_id INT NOT NULL,
                          PRIMARY KEY(no),
                          INDEX (product_category, product_id),
                          FOREIGN KEY (product_category, product_id)
                            REFERENCES product(category, id)
                            ON UPDATE CASCADE ON DELETE RESTRICT,
                          INDEX (customer_id),
                          FOREIGN KEY (customer_id)
                            REFERENCES customer(id)) TYPE=INNODB;
    Pour ce code là, dans phpmyadmin, je ne vois que la contrainte de product_category, pour product_id il me dit qu'aucun index est défini!!!

    Cf : pièce jointe.

    Si vous avez des réponses à me donner, elles seront les bienvenues car la je sèche
    Images attachées Images attachées  

  2. #2
    Membre régulier Avatar de Macfurp
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    je viens de soumettre ton script à l'aide de Mysql Query Browser, tout me semble correct (voir pièce jointe), PHP (que je n'utilise pas) montrerait ici ses limites... ?
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/01/2012, 09h45
  2. foreign-key sur plusieurs colonnes (Hibernate 3)
    Par ep31 dans le forum Hibernate
    Réponses: 1
    Dernier message: 27/10/2008, 15h00
  3. [SQL] FOREIGN KEY lors de la création de la base
    Par R.L. dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 31/05/2006, 15h36
  4. Problème avec foreign key
    Par bubi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/11/2005, 16h03
  5. problème avec Foreign Key [Interbase 7.5] [Delphi 2005]
    Par xenos dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/09/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo