Par la suite j'ai ajouté un nouveau champ (id_format) en fin de table (grâce à PhpMyadmin). Disposant des données id_format dans un fichier .txt du style :
1
3
5
1
1
etc
j'ai voulu utiliser LOAD DATA INFILE pour alimenter mon nouveau champ avec les données de mon fichier .txt :
LOAD DATA INFILE '***.txt' INTO TABLE livre (id_format)
LINES TERMINATED BY '\r\n'
;
Mais j'ai l'erreur suivante : #1062 - Duplicate entry '0' for key 'PRIMARY'
Mon champ id_format n'est pourtant pas la clé primaire (c'est le champ id_livre). A noter que suite à cette erreur, mon champ id_format se remplit de 0 à chaque enregistrement et un nouvel enregistrement est crée avec des valeurs à 0.
Voyez-vous comment procéder pour alimenter mon nouveau champ correctement ? Merci d'avance.
bonjour,
après quelques tests, avec diverses options, LOAD DATA INFILE insère dans la base de données.
Même si la syntaxe officielle, http://dev.mysql.com/doc/refman/5.1/en/load-data.html, laisse penser que l'on pourrait faire un UPDATE avec les options REPLACE et SET.
Je ne suis pas allé plus loin dans mes tests.
Donc une autre solution, plus lourde au niveau du codage et de la rapidité, est de faire une lecture de fichier et une série de UPADTE.
Ce n'est peut-être pas la meilleure solution mais en attendant mieux elle tourne
Bon courage et attendons la solution optimale.
LOAD DATA INFILE
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.