Problème :
Lors du chargement de données à partir d'un fichier CSV avec des champs vides dans une table MySQL à l'aide de la commande LOAD DATA INFILE, MySQL attribue 0 aux champs vides au lieu de NULL, même lorsque la colonne est définie avec une valeur par défaut NULL.
Solution :
Pour charger correctement les valeurs NULL pour les champs vides, lisez le champ problématique dans une variable locale, puis définissez conditionnellement la valeur réelle du champ à NULL si la variable est vide :
LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS TERMINATED BY "," LINES TERMINATED BY "\n" (one, two, three, @vfour, five) SET four = NULLIF(@vfour,'') ;
Explication :
Remarque supplémentaire :
Si tous les champs peuvent potentiellement être vides, lisez-les tous dans des variables locales et utilisez plusieurs Instructions SET pour attribuer conditionnellement des valeurs NULL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!