Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum 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 07/02/2011, 21h11   #1
Membre régulier
 
Inscription : juin 2005
Messages : 449
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 449
Points : 83
Points : 83
Par défaut Insert duplicate entry primary key

Bonjour à tous,

Petit soucis sur l'import de donnée d'une base existante :

J'ai une table avec plusieurs colonnes, dont 2 qui constituent ma clef primaire :
Code :
 PRIMARY KEY  (`post_id`,`meta_value`)
Et lorsque je fait un insert correspondant sur cette table :
Code :
1
2
INSERT INTO `tabl` (`post_id`, `meta_value`, `meta_count`, `last_modified`) VALUES (69, 'silensor erkodent', 11, '2011-01-17 14:57:20');
INSERT INTO `tabl` (`post_id`, `meta_value`, `meta_count`, `last_modified`) VALUES (527, 'silensor erkodent', 3, '2010-03-11 10:34:14');
Le premier est bien inséré et le deuxième me dit :
Code :
Duplicate entry 'silensor erkodent' for key 'meta_value'
Le texte est effectivement bien le même, mais le post_id est différent, donc l'insert devrait fonctionner, non ?

Merci de vos idées et suggestions
samtheh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 22h49   #2
Membre régulier
 
Inscription : novembre 2010
Messages : 102
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 102
Points : 86
Points : 86
"La contrainte PRIMARY KEY assure qu'il n'y aura aucune valeur redondante (doublon) dans la colonne."
http://sqlpro.developpez.com/cours/s...partie2#L7.1.4
Tu ne peux tout simplement pas faire le même meta_value 2 fois si tu laisse cette clé primaire.
Soull est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/02/2011, 23h46   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu dois avoir créer un autre index unique ; si l'erreur portait sur la clef primaire tu aurais "for key 'PRIMARY'" et l'indication de doublon indiquerait les deux colonnes en jeu.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 22h34   #4
Membre régulier
 
Inscription : juin 2005
Messages : 449
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 449
Points : 83
Points : 83
La première réponse est hors sujet....

La deuxième réponse est la bonne, j'avais un second index sur cette table. Merci
samtheh 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 07h43.


 
 
 
 
Partenaires

Hébergement Web