SQL значение default при insert

iolke

Новичок
Здравствуйте,

Такая проблемна - при загрузке данных в бд через CSV файл в поле где нет значения загружается 0, и не применяется установленный в default при not null для данного поля. Как поправить этот момент????
 

iolke

Новичок
$query = "LOAD DATA LOCAL INFILE '$uploadfile' INTO TABLE s FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n'
IGNORE 1 LINES (id, img, quantity, pr) SET pr = REPLACE(@pr, ',', '.')";
 

fixxxer

К.О.
Партнер клуба
Так работает mysql, это задокументировано. Включи strict mode, чтобы были ошибки вместо warning-ов (будет проще отлаживать), а дальше два варианта:
1) предобработка csv каким-нибудь awk
2) попробовать с переменными что-то типа ... (id, img, quantity, @pr) ... set pr = if(@pr = '', 'defaultValue', @pr)... - см. примеры с переменными и set -> https://dev.mysql.com/doc/refman/8.0/en/load-data.html
 
Сверху