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

Administration MySQL Discussion :

insertion dans table avec plusieurs clés étrangères


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 76
    Points
    76
    Par défaut insertion dans table avec plusieurs clés étrangères
    Bonjour ! Ma table est en innoDB, j'ai mySQL 4.1.9. Cette table contient plusieurs clés étrangères. Je tente d'insérer une ligne dans cette table en ne remplissant dans un premier temps que le champ clé primaire : mySQL ne veut pas :"impossible d'ajouter un enregistrement fils, une contrainte externe l'empêche"...
    Je précise que j'ai autorisé les clés étrangères à être nulles.
    Pouvez-vous m'aider s'il vous plaît ? Est-il vraiment impossible d'insérer une ligne sans avoir à préciser la valeur de toutes les clés étrangères ?
    Un seul point-virgule vous manque et tout est dépeuplé.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 76
    Points
    76
    Par défaut
    J'ai trouvé ça dans le tuto InnoDB d'Olivier Miossec (sur le site) :

    "Par défaut, cette contrainte [=la contrainte de clé étrangère] empêche la création d’enregistrements dans la table secondaire sans qu’aucune référence ne soit possible. "

    Ce qui répondrait à ma question : il faut que toutes les références soient possibles lors de la création d'un enregistrement...

    Avant de me résigner à cette énième goutte d'eau supplémentaire dans le vase de ma considération pour les contraintes d'intégrité des tables InnoDB, J'aimerais bien avoir la confirmation d'un spécialiste s'il vous plait !
    Un seul point-virgule vous manque et tout est dépeuplé.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 76
    Points
    76
    Par défaut
    Voilà la méthode que j'ai utilisé pour résoudre le pb :
    - j'ai enlevé toutes les clés étrangères de ma table
    - j'ai inséré un enregistrement sans pb
    - j'ai ajouté une clé étrangère
    - j'ai ajouté un enregistrement sans pb
    - j'ai ajouté une deuxième clé
    - j'ai ajouté un enregistrement sans pb
    - etc...
    - mais il y a une clé que je n'ai pas pu ajouter : c'est elle qui faisait tout coincer
    - j'ai carrément supprimé la colonne correspondante et je l'ai recréée à l'identique en ajoutant la clé ensuite
    - toutes les clés étaient là : j'ai ajouté un enregistrement sans pb

    Ok ça n'explique pas où était le pb mais au moins il est résolu...
    Un seul point-virgule vous manque et tout est dépeuplé.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/11/2012, 23h18
  2. MySQL : insertion dans table avec clés étrangères
    Par chatmi dans le forum Requêtes
    Réponses: 7
    Dernier message: 22/06/2012, 15h36
  3. Réponses: 9
    Dernier message: 08/10/2010, 08h39
  4. Creation d'une table avec plusieurs clés
    Par mic79 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2005, 11h17
  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, 17h24

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