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

Langage SQL Discussion :

Création d'une clé étrangère : Msg 1776.


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Points : 37
    Points
    37
    Par défaut Création d'une clé étrangère : Msg 1776.
    Salut tout le monde,

    Ca fait une petite heure que je cherche et je trouve plein de solutions, mais pas la bonne apparemment.
    Je cherche à créer 3 tables avec des clés étrangère via le code suivant :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    USE TEST
    GO
    CREATE TABLE TEST_PRODUIT(
    	CODFOUR varchar(6) NOT NULL,
    	CODPDT varchar(6) NOT NULL,
    	CODGEN varchar(13) NOT NULL,
    	Designation varchar(30) NOT NULL,
    	DateMAJ datetime NOT NULL
    	CONSTRAINT PK_TEST_PRODUIT PRIMARY KEY (CODFOUR, CODPDT, CODGEN)
    )
    GO
    USE TEST
    GO
    CREATE TABLE TEST_TYPE_TARIFS(
    	TypeTarif varchar(3) NOT NULL,
    	Designation varchar(30) NOT NULL
    	CONSTRAINT PK_TEST_TYPE_TARIFS PRIMARY KEY (TypeTarif)
    )
    GO
    USE TEST
    GO
    CREATE TABLE TEST_TARIFS(
    	CODPDT varchar(6) NOT NULL,
    	CODGEN varchar(13) NOT NULL,
    	TypeTarif varchar(3) NOT NULL,
    	Prix decimal(7,2) NOT NULL,
    	DateMAJ datetime NOT NULL
    	CONSTRAINT PK_TEST_TARIFS PRIMARY KEY (CODPDT, CODGEN, TypeTarif)
    )
    GO
    USE TEST
    GO
    ALTER TABLE TEST_TARIFS ADD CONSTRAINT FK_TEST_TARIFS_TEST_TYPE_TARIFS FOREIGN KEY(TypeTarif) REFERENCES TEST_TYPE_TARIFS (TypeTarif)
    GO
    USE TEST
    GO
    ALTER TABLE TEST_TARIFS ADD CONSTRAINT FK_TEST_TARIFS_TEST_PRODUIT FOREIGN KEY(CODPDT, CODGEN) REFERENCES TEST_PRODUIT (CODPDT, CODGEN)
    Mais j'obtiens toujours le même message d'erreur sur la création de la dernière clé étrangère :
    Msg 1776, Niveau 16, État 0, Ligne 1
    Aucune clé primaire ou candidate dans la table référencée 'TEST_PRODUIT' ne correspond à la liste des colonnes de référence de la clé étrangère 'FK_TEST_TARIFS_TEST_PRODUIT'.
    Msg 1750, Niveau 16, État 0, Ligne 1
    Impossible de créer la contrainte. Voir les erreurs précédentes.
    En cherchant des infos sur ce message d'erreur j'ai lu que mes colonnes référencées comme clés étrangères n'était pas des clés primaires dans les autres tables, pourtant si (ou bien j'ai loupé quelque chose ?).
    Les champs des clés étrangères sont respectivement du même type, les tables et les clés sont déclarées dans un ordre logique.

    Bref je sèche.

    Quelqu'un a une autre idée ? Je suis sous SQL Server 2005.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 020
    Points : 31 000
    Points
    31 000
    Billets dans le blog
    16
    Par défaut
    La clé primaire de la table TEST_PRODUIT comporte 3 colonnes :
    CODFOUR, CODPDT, CODGEN

    La clé étrangère de la table TEST_TARIFS n'en comporte que deux :
    CODPDT, CODGEN

    La colonne CODFOUR est donc à intégrer dans TEST_TARIFS...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Nouveau membre du Club
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Ah ? C'est tout bête comme réponse...
    Je viens de tester et effectivement ça marche, donc merci.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Je suis de passage, merci en tout cas. J'ai eu le même problème du fait que pour ajouter mes clés étrangères j'utilisais 2 lignes constraint au lieu d'une unique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de création d'une clef étrangère
    Par zezee dans le forum Débuter
    Réponses: 2
    Dernier message: 10/11/2009, 14h20
  2. Réponses: 2
    Dernier message: 29/04/2009, 22h25
  3. Création d'une clé étrangére entre 2 tables
    Par kamnouz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/01/2009, 13h43
  4. Problème a la création d'une clef étrangère
    Par tomy29 dans le forum Administration
    Réponses: 3
    Dernier message: 19/07/2008, 11h07
  5. création d'une clé étrangère sous mysql
    Par franfr57 dans le forum Outils
    Réponses: 2
    Dernier message: 23/03/2006, 09h24

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