Maison >base de données >tutoriel mysql >Comment charger correctement des tables MySQL avec des valeurs NULL à partir de fichiers CSV contenant des champs vides ?

Comment charger correctement des tables MySQL avec des valeurs NULL à partir de fichiers CSV contenant des champs vides ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-26 12:00:19268parcourir

How to Properly Load MySQL Tables with NULL Values from CSV Files Containing Empty Fields?

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 :

  1. Lisez les champs vides dans les variables locales.
  2. Vérifiez si les variables locales sont des chaînes vides (équivalentes à NULL).
  3. Définissez les valeurs réelles des champs de table sur NULL si le les variables locales sont des chaînes vides.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn