Herausforderung:
CSV-Datendateien enthalten oft leere Felder, was passieren kann kann problematisch sein, wenn sie in MySQL-Tabellen geladen werden, die mit NULLABLE-Spalten definiert sind. Standardmäßig weist MySQL leeren Feldern Null (0) zu, auch wenn der Spaltenstandard NULL ist. Dies kann zu Verwirrung führen, wenn versucht wird, zwischen NULL- und Nullwerten zu unterscheiden.
Lösung:
Um sicherzustellen, dass leere Felder beim Laden der Daten als NULL-Werte interpretiert werden, beachten Sie Folgendes mit den folgenden Methoden:
Ändern Sie die LOAD DATA INFILE-Anweisung, um die leeren Felder in eine lokale Variable (@vfour) einzulesen, und setzen Sie dann den tatsächlichen Feldwert auf NULL, wenn die lokale Variable leer ist.
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,'') ;
Dadurch wird sichergestellt, dass leere Felder in der CSV-Datei im MySQL als NULL interpretiert werden Tabelle.
Wenn alle Felder in der CSV-Datei potenziell leer sein können, verwenden Sie mehrere SET-Anweisungen, um Weisen Sie leeren Feldern NULL-Werte zu.
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,'') ;
Dieser Ansatz ermöglicht die explizite Behandlung leerer Felder und stellt sicher, dass sie als NULL interpretiert werden Werte.
Durch die Verwendung dieser Methoden können Sie NULL-Werte effektiv aus CSV-Daten in MySQL-Tabellen laden und so das Problem der Fehlinterpretation leerer Felder als Nullwerte lösen.
Das obige ist der detaillierte Inhalt vonWie lade ich NULL-Werte aus CSV-Dateien ordnungsgemäß in MySQL-Tabellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!