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 clé étrangère


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 90
    Points : 55
    Points
    55
    Par défaut Problème avec clé étrangère
    Bonjour
    J'ai besoin de votre aide pour une manipulation dans wampserver.
    J'ai deux tables offre et recruteur ; la table offre contient une clé étrangère qui référence une ligne de la table recruteur. J'ai ajouté une ligne dans la table offre avec une clé étrangère 1. Le problème c'est que quand je veux ajouter une autre ligne dans offre avec la même clé étrangère ça m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1062 - Duplicate entry '1' for key 'idR_2'
    Ça veux dire que la clé étrangère est unique. Je veux savoir comment la rendre non unique pour pouvoir affecter plusieurs offres à un seul recruteur.
    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    Pouvez-vous nous montrer les tables s'il vous plait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW CREATE TABLE maTable;
    Une clé étrangère est rarement unique lorsque la relation est 0,n (voire jamais).

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 90
    Points : 55
    Points
    55
    Par défaut
    Bonjour,
    voilà le code

    table offre:
    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
     
    CREATE TABLE `offre` (
     `Num` bigint(20) NOT NULL AUTO_INCREMENT,
     `titre` varchar(20) NOT NULL,
     `Poste` varchar(10) NOT NULL,
     `domaine` varchar(20) NOT NULL,
     `date_pub` date NOT NULL,
     `date_exp` date NOT NULL,
     `description` text NOT NULL,
     `objetif` text NOT NULL,
     `compétence` text NOT NULL,
     `ville` varchar(20) NOT NULL,
     `pays` varchar(20) NOT NULL,
     `validé` int(11) NOT NULL,
     `idR` bigint(20) NOT NULL,
     PRIMARY KEY (`Num`),
     UNIQUE KEY `idR_2` (`idR`),
     UNIQUE KEY `idR_3` (`idR`),
     UNIQUE KEY `idR_5` (`idR`),
     KEY `idR_4` (`idR`),
     CONSTRAINT `offre_ibfk_2` FOREIGN KEY (`idR`) REFERENCES `recruteur` (`idR`) ON DELETE NO ACTION ON UPDATE NO ACTION
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
    table recruteur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE `recruteur` (
     `idR` bigint(20) NOT NULL AUTO_INCREMENT,
     `nom` varchar(20) NOT NULL,
     `prénom` varchar(20) NOT NULL,
     `email` varchar(20) NOT NULL,
     `Tél` varchar(20) NOT NULL,
     `fonction` varchar(20) NOT NULL,
     `login` varchar(20) NOT NULL,
     `pass` varchar(20) NOT NULL,
     `creation` date NOT NULL,
     `etatcompte` int(11) NOT NULL,
     PRIMARY KEY (`idR`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
    Merci de votre réponse

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par felix01 Voir le message
    ça veux dire que la clé étrangère est unique je veux savoir comment rendre non unique pour pouvoir affecter plusieurs offre à un seule recruteur
    Pourtant tu semblais vraiment vouloir que la colonne soit unique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     UNIQUE KEY `idR_2` (`idR`),
     UNIQUE KEY `idR_3` (`idR`),
     UNIQUE KEY `idR_5` (`idR`),

  5. #5
    Membre régulier
    Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2003
    Messages : 94
    Points : 116
    Points
    116
    Par défaut
    Bonjour,

    il faut supprimer les 3 index redondants idR_2, idR_3 et idR_4
    et ne conserver que l'index idR_4

    cordialement

    Selecta

Discussions similaires

  1. problème avec clé étrangère
    Par topographe dans le forum Développement
    Réponses: 5
    Dernier message: 25/08/2011, 11h53
  2. Problème avec clefs étrangères
    Par tomy29 dans le forum Hibernate
    Réponses: 5
    Dernier message: 05/11/2008, 18h42
  3. Réponses: 1
    Dernier message: 21/11/2007, 15h35
  4. Problème avec les clés étrangères
    Par PoichOU dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 06/11/2007, 10h46
  5. Problème avec clé étrangère
    Par gothard dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/02/2007, 17h50

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