Как можно установить отсутствующие значения поля CSV в sql NULL
во время LOAD DATA
? Проблема в следующем примере состоит в том, что mysql
не позволяет мне импортировать файл, если поле dob
предлагает только пустое поле:
create table persons (
id bigint(20) NOT NULL AUTO_INCREMENT,
dob date DEFAULT NULL,
lastname varchar(20) NOT NULL,
//in real world having 100 columns!
PRIMARY KEY (id)
);
import.csv с отсутствующим днем рождения:
1;;doe
2;;dane
...
Импорт миллионов строк:
LOAD DATA INFILE 'import.csv' INTO TABLE persons FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n';
Я, конечно, мог бы использовать:
(@col1, @col2... @col100)
SET date = nullif(@col2,''),
lastfield = nullif(@col100,'')
;
Но это означало бы, что мне пришлось явно повторять все столбцы, которых я стараюсь избегатьпо причинам обслуживания. Каковы мои шансы?
Или я мог бы как-то только определить поля non-char и использовать nullif
для них?
(@col2)
SET date = nullif(@col2,'');
И оставить все как есть?