Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/06/2006, 17h31   #1
Membre du Club
 
Inscription : avril 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 110
Points : 53
Points : 53
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 ?
philippe281281 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 17h53   #2
Membre du Club
 
Inscription : avril 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 110
Points : 53
Points : 53
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 !
philippe281281 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 18h35   #3
Membre du Club
 
Inscription : avril 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 110
Points : 53
Points : 53
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...
philippe281281 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h01.


 
 
 
 
Partenaires

Hébergement Web