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

 MySQL Discussion :

Création d'une table avec plusieurs clés étrangères


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Analyste évolution technologique - environnement poste de travail
    Inscrit en
    Août 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste évolution technologique - environnement poste de travail

    Informations forums :
    Inscription : Août 2015
    Messages : 3
    Par défaut Création d'une table avec plusieurs clés étrangères
    Bonjour,

    J'essaie la commande suivante dans le but de créer une table qui est liée avec 3 tables filles. Celles-ci serviront à alimenter des listes déroulantes dans la table mère.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE player (
      id serial,
      dg_id integer NOT NULL,
      playTeam_id integer NOT NULL,
      playPosition_id integer NOT NULL,
      playStatus_id integer NOT NULL,
      name varchar(150) NOT NULL,
      PRIMARY KEY (id),
      FOREIGN KEY (dg_id) REFERENCES dg(id),
      FOREIGN KEY (playTeam_id) REFERENCES tableFille1(id),
      FOREIGN KEY (playPosition_id) REFERENCES tableFille2(id),
      FOREIGN KEY (playStatus_id) REFERENCES tableFille3(id)  
    );

    Erreur obtenue :

    #1005 - Can't create table `dbpool`.`player` (errno: 150 "Foreign key constraint is incorrectly formed")

    P.S. Je débute vraiment avec MySQL.

    Merci de m'aider.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 704
    Billets dans le blog
    10
    Par défaut
    Bonsoir,

    Il manque le script des 3 tables dites "filles" pour savoir ce qu'il en est (habituellement on appelle plutôt "fille" la table où on pose la contrainte et "mère" la table à laquelle on fait référence, puisque c'est elle qui est à l'origine de la colonne ciblée )

    Ce qu'il faut contrôler, c'est que :
    - les colonnes auxquelles se réfèrent les colonnes de la contrainte font l'objet d'une contrainte UNIQUE ou PRIMARY KEY dans la table ciblée
    - le type des colonnes dans la table où est définie la contrainte et dans la table à laquelle on fait référence sont de même type
    - la collation des colonnes dans la table où est définie la contrainte et dans la table à laquelle on fait référence sont de même type

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/10/2010, 09h39
  2. Création de table avec plusieurs clés primaires
    Par jeanjean0403 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 31/12/2007, 16h10
  3. insertion dans table avec plusieurs clés étrangères
    Par philippe281281 dans le forum Administration
    Réponses: 2
    Dernier message: 14/06/2006, 19h35
  4. Creation d'une table avec plusieurs clés
    Par mic79 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2005, 12h17
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 18h24

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