Chargement de tables MySQL avec des valeurs NULL à partir de données CSV
Lors de l'importation de données CSV dans une table MySQL, il est essentiel de gérer correctement les valeurs NULL pour maintenir l’intégrité des données. Considérez la situation suivante :
Vous disposez d'une table nommée "moo" avec plusieurs colonnes numériques, qui autorisent toutes des valeurs NULL. Lors du chargement de données à partir d'un fichier CSV, vous rencontrez des champs vides dans les colonnes. Cependant, au lieu de remplir ces champs avec des valeurs NULL, MySQL leur attribue des zéros. Cela peut entraîner des incohérences dans les données lorsque vous tentez de différencier les valeurs NULL des zéros.
Pour résoudre ce problème, utilisez l'approche suivante :
Voici un exemple d'instruction :
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,'') ;
Dans cette instruction, le quatrième champ ("quatre") est lu dans la variable locale @vfour. Si @vfour contient une chaîne vide, le quatrième champ de la table est défini sur NULL à l'aide de la fonction NULLIF().
Si vous avez plusieurs colonnes avec des champs potentiellement vides, vous pouvez tous les lire dans des variables et utiliser plusieurs instructions SET pour gérer les valeurs NULL en conséquence.
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!