MySQL lädt NULL-Werte aus CSV-Daten

Ich habe eine Datei, die 3 bis 4 durch Komma getrennte Spalten mit numerischen Werten enthalten kann. Leere Felder werden mit der Ausnahme definiert, dass sie sich am Ende der Zeile befinden:

1,2,3,4,5
1,2,3,,5
1,2,3

Die folgende Tabelle wurde in MySQL erstellt:

+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| one   | int(1) | YES  |     | NULL    |       | 
| two   | int(1) | YES  |     | NULL    |       | 
| three | int(1) | YES  |     | NULL    |       | 
| four  | int(1) | YES  |     | NULL    |       | 
| five  | int(1) | YES  |     | NULL    |       | 
+-------+--------+------+-----+---------+-------+

Ich versuche, die Daten mit dem MySQL LOAD-Befehl zu laden:

LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS 
TERMINATED BY "," LINES TERMINATED BY "\n";

Die resultierende Tabelle:

+------+------+-------+------+------+
| one  | two  | three | four | five |
+------+------+-------+------+------+
|    1 |    2 |     3 |    4 |    5 | 
|    1 |    2 |     3 |    0 |    5 | 
|    1 |    2 |     3 | NULL | NULL | 
+------+------+-------+------+------+

Das Problem liegt in der Tatsache, dass MySQL aus irgendeinem Grund nicht den Standardwert der Spalten (der NULL ist) verwendet und Null verwendet, wenn ein Feld in den Rohdaten leer und nicht definiert ist. NULL wird korrekt verwendet, wenn das Feld vollständig fehlt.

Leider muss ich zu diesem Zeitpunkt in der Lage sein, zwischen NULL und 0 zu unterscheiden, daher wäre jede Hilfe willkommen.

Danke S.

bearbeite

Die Ausgabe von SHOW WARNINGS:

+---------+------+--------------------------------------------------------+
| Level   | Code | Message                                                |
+---------+------+--------------------------------------------------------+
| Warning | 1366 | Incorrect integer value: '' for column 'four' at row 2 | 
| Warning | 1261 | Row 3 doesn't contain data for all columns             | 
| Warning | 1261 | Row 3 doesn't contain data for all columns             | 
+---------+------+--------------------------------------------------------+

Antworten auf die Frage(4)

Ihre Antwort auf die Frage