我为客户创建了一个 csv 文件导入器,我遇到的问题是我在文件中得到了十进制值的截断值,例如:
in .csv file price is 12,23
and in database it is saved as 12.
我检查了字段,它们被设置为小数 (10,2),所以这不应该是常见的。我的加载文件代码是:
LOAD DATA LOCAL INFILE "U:/v7/root/file/docimport/3/87/article.csv"
INTO TABLE im_artikel
CHARACTER SET latin1 FIELDS TERMINATED BY ";" IGNORE 1 LINES
(article,price,grossprice);
show WARNINGS;
我得到一个错误:
1265 Data truncated for column 'price' at row 1
1265 Data truncated for column 'grossprice' at row 1
.Csv 文件如下所示:
Shoes;40,00;21,46
我可以将所有字段更改为 varchar 而不是问题,但我认为这不是解决方案。
最佳答案
请尝试一下:
LOAD DATA LOCAL INFILE "U:/v7/root/file/docimport/3/87/article.csv"
INTO TABLE im_artikel
CHARACTER SET latin1 FIELDS TERMINATED BY ";" IGNORE 1 LINES
(article,@p,@gp)
SET price = REPLACE(@p, ',', '.'), grossprice = REPLACE(@gp, ',', '.');
关于mysql - 使用十进制值加载数据本地 infile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21697164/