У меня есть файл, который может содержать от 3 до 4 столбцов числовых значений, разделенных запятой. Пустые поля определяются за исключением того, что они находятся в конце строки:
1,2,3,4,5
1,2,3,,5
1,2,3
Следующая таблица была создана в MySQL:
+ ------- + -------- + ------ + ----- + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + ------- + -------- + ------ + ----- + --------- + ------- + | один | int (1) | ДА | | NULL | | | два | int (1) | ДА | | NULL | | | три | int (1) | ДА | | NULL | | | четыре | int (1) | ДА | | NULL | | | пять | int (1) | ДА | | NULL | | + ------- + -------- + ------ + ----- + --------- + ------- +
Я пытаюсь загрузить данные с помощью команды MySQL LOAD:
LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS
TERMINATED BY "," LINES TERMINATED BY "\n";
Полученная таблица:
+ ------ + ------ + ------- + ------ + ------ + | один | два | три | четыре | пять | + ------ + ------ + ------- + ------ + ------ + | 1 | 2 | 3 | 4 | 5 | | 1 | 2 | 3 | 0 | 5 | | 1 | 2 | 3 | NULL | NULL | + ------ + ------ + ------- + ------ + ------ +
Проблема заключается в том, что когда поле в необработанных данных пусто и не определено, MySQL по какой-то причине не использует значение по умолчанию для столбцов (которое равно NULL) и использует ноль. NULL используется правильно, когда поле полностью отсутствует.
К сожалению, я должен уметь различать NULL и 0 на этом этапе, поэтому любая помощь будет оценена.
Спасибо С.
редактировать
Вывод ШОУ ПРЕДУПРЕЖДЕНИЙ:
+ --------- + ------ + -------------------------------- ------------------------ + | Уровень | Код | Сообщение | + --------- + ------ + -------------------------------- ------------------------ + | Предупреждение 1366 | Неверное целочисленное значение: '' для столбца 'четыре' в строке 2 | | Предупреждение 1261 | Строка 3 не содержит данных для всех столбцов | | Предупреждение 1261 | Строка 3 не содержит данных для всех столбцов | + --------- + ------ + -------------------------------- ------------------------ +
LOAD DATA
. Смотрите раздел примеров d6tstack SQL об изменениях схемы данных.