Défi :
Les fichiers de données CSV contiennent souvent des champs vides, qui peuvent être problématique lors de leur chargement dans des tables MySQL définies avec des colonnes NULLABLE. Par défaut, MySQL attribue zéro (0) aux champs vides, même lorsque la colonne par défaut est NULL. Cela peut prêter à confusion lorsque vous tentez de faire la distinction entre les valeurs NULL et zéro.
Solution :
Pour garantir que les champs vides sont interprétés comme des valeurs NULL lors du chargement des données, considérez en utilisant les méthodes suivantes :
Modifiez l'instruction LOAD DATA INFILE pour lire les champs vides dans une variable locale (@vfour), puis définissez la valeur réelle du champ sur NULL si la variable locale 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,'') ;
Cela garantit que les champs vides du fichier CSV sont interprétés comme NULL dans MySQL table.
Si tous les champs du fichier CSV peuvent être potentiellement vides, utilisez plusieurs instructions SET pour attribuer des valeurs NULL aux champs vides.
LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS TERMINATED BY "," LINES TERMINATED BY "\n" (@vone, @vtwo, @vthree, @vfour, @vfive) SET one = NULLIF(@vone,''), two = NULLIF(@vtwo,''), three = NULLIF(@vthree,''), four = NULLIF(@vfour,'') ;
Cette approche permet une gestion explicite des champs vides et garantit qu'ils sont interprétés comme NULL valeurs.
En utilisant ces méthodes, vous pouvez charger efficacement des valeurs NULL à partir de données CSV dans des tables MySQL, résolvant ainsi le problème de l'interprétation erronée des champs vides comme valeurs nulles.
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!