Bonjour,
j'ai un soucis avec l'utilisation de load data infile dans un script php.
J'importe des données via un fichier csv, mais sa structure est un peu différente de la structure de la table mysql: dans mon csv, il y a 3 colonnes que je veux grouper en une seule dans ma table (sans perdre le lien avec les autres valeurs de ma ligne, evidemment). Je fais ça en plusieurs requêtes, en 3 requetes donc (1 par colonne du csv, en laissant en @dummy les 2 autres).
Ca marche très bien, mais lorsque je fais un deuxieme import de ces mêmes données, ça me duplique certaines lignes où il y a des valeurs nulles. En effet, il y a des valeurs nulles dans certaines des 3 colonnes de mon csv, selon la ligne étudiée.
Voici mon script pour gérer les null (identique pr mes 3 requetes):
SET colonne_table_mysql = CASE @colonne_de_mon_csv WHEN '' THEN null else @colonne_de_mon_csv END;"
A noter que j'ai un index unique sur l'ensemble des champs de ma table (en effet, ma "clé primaire" correspond à l'ensemble des champs).
A noter également que lorsque les valeurs de ces 3 colonnes de mon csv ne sont pas nulles, il n'y a pas de duplication lors d'imports multiples.
Ma question: comment éviter la duplication des lignes avec valeur nulle lors d'imports futurs?
Merci! (si vous avez besoin de plus d'infos sur mes fihciers/scripts, n'hésitez pas! je me rends pas compte si je suis assez clair ou non...)
Partager