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 :

Ajouter clés primaires provenant de 3 autres tables


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Par défaut Ajouter clés primaires provenant de 3 autres tables
    Bonjour à tous
    je suis débutante en mysql et je voudrai ajouter des clés primaires provenant de 3 autres tables dans la table principale

    En lisant sur le net j'ai lu que je devais utiliser
    Alter table et add Foreign key

    Le message retourné est le suivant :

    #1072 - Key column 'idWin' doesn't exist in table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ALTER TABLE contactme
    ADD FOREIGN KEY (idWin) REFERENCES win(idWin) ,
    ADD FOREIGN KEY (id_VerOffice) REFERENCES veroffice(id_VerOffice) ,
    ADD FOREIGN KEY (id_VIRUS) REFERENCES virus(id_VIRUS)
    Mes tables sont les suivantes :

    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
     
    CREATE TABLE IF NOT EXISTS `contactme` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `Prenom` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `email` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `mobile` varchar(10) COLLATE latin1_general_ci NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
     
     
    CREATE TABLE IF NOT EXISTS `win` (
      `idWin` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Clé primaire',
      `Nom_Win` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`idWin`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
     
     
    CREATE TABLE IF NOT EXISTS `virus` (
      `id_VIRUS` int(11) NOT NULL AUTO_INCREMENT,
      `Nom_ANTIVIRUS` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
      PRIMARY KEY (`id_VIRUS`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
     
     
    CREATE TABLE IF NOT EXISTS `veroffice` (
      `id_VerOffice` int(11) NOT NULL AUTO_INCREMENT,
      `Nom_Office` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
      PRIMARY KEY (`id_VerOffice`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
    J'utilise xampp.
    Je ne comprend pas pourquoi la syntaxe me parait correcte

    Pourriez vous m'expliquer ? Et me solutionner mon problème merci d'avance.

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLE contactme
        ADD FOREIGN KEY (idWin) REFERENCES win(idWin)
    Ici tu demande à ce que la colonne idWin de la table contactname soit référencée par la colonne idWin de la table win.

    Or ta table contactname ne possède pas de colonne idWin, c'est l'erreur que MySQL te renvoi !!

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Par défaut
    Bonjour ticroch
    merci pour ta réponse

    Alors comment ajouter la clé primaire idwin de ma table win dans la table contactme ?

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLE contactme
     ADD `idWin` int(11);

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Par défaut
    Arf aussi simple que ça
    je ne pensai pas que cette ligne pouvait lier les deux tables via l id comme ça
    je teste dès que possible et je reviendrai mettre en résolu mon sujet.
    merci

  6. #6
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    non il faut aussi ajozuter la clef étrangère après !!

    Je sais pas si ca ca marche ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLE contactme
       ADD `idWin` int(11) FOREIGN KEY REFERENCES win(idWin)
    ou ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ALTER TABLE contactme
       ADD `idWin` int(11),
       ADD FOREIGN KEY (idWin) REFERENCES win(idWin)

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/01/2010, 20h25
  2. Réponses: 11
    Dernier message: 27/10/2009, 17h12
  3. insert données provenant d'une autre table
    Par jd416 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 31/07/2008, 09h55
  4. "insert into" de valeurs provenant d'une autre table
    Par jgfa9 dans le forum Requêtes
    Réponses: 5
    Dernier message: 31/01/2008, 09h44
  5. Réponses: 1
    Dernier message: 30/12/2005, 18h40

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