Probleme d'import de fichier cvs : conflit avec primary key

Eléphanteau du PHP | 17 Messages

31 janv. 2010, 13:39

Voilà mon problème :

J'ai une base "client". Dans cette base, il y a parmi les champs un "id_client", primary key, autoincrement.

J'ai un fichier cvs avec tous les champs.

Mon problème : quand je veux l'importer, soit je vire le champ id_client et alors phpadmin me dit qu'il manque un champ pour l'insertion, soit je le laisse, et alors il y a conflit avec la primary key. (ces fichiers venant d'une autre BDD, ils possèdent des "id_client" parfois égaux avec ceux existant).

Comment faire, pour que lors de l'import, les données du fichier cvs soient ajoutées à la suite de ma bdd, et que fonctionne l'autoincrement pour l'id_client de chaque ligne ainsi ajoutée ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

31 janv. 2010, 23:52

Lorsque tu importes un CSV avec PhpMyAdmin, c'est en fait une requête LOAD DATA INFILE qui est exécutée.
Il est possible, dans ces requêtes, de spécifier la liste des champs qui sont contenus dans le CSV, et donc de retirer la PK.

Pour apprendre comment manipuler les requêtes LOAD DATA INFILE, je te redirige sur mon tutoriel
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 17 Messages

01 févr. 2010, 10:50

merci