Transformer colonne CSV vide en NULL (LOAD DATA)
Bonjour.
Dans l'optique de charger des données en base avec LOAD DATA depuis un csv, je dois transformer un champs vide en NULL car c'est une clé étrangère.
Typiquement, a~b~~d en "a", "b", NULL, "d".
Tout se joue après le SET.
Ce que j'ai essayé :
Code:
1 2 3
| LOAD DATA INFILE '/dump.csv' INTO TABLE clients FIELDS TERMINATED BY '~' (id, name, firstname, mail, other) SET mail=NULLIF(@mail='', NULL);
--ou
LOAD DATA
SET mail=IF(@mail=NULL, NULL, @mail) |
Citation:
Cannot add or update a child row: a foreign key constraint fails
Code:
LOAD DATA
SET mail=NULLIF(@mail=NULL, NULL);
Pas d'erreur, mais tous les champs sont à NULL.
La question est en gros comment MySQL considère un champs csv vide. Visiblement ce n'est ni NULL ni ''.
Une idée ?