mysql - 使用十进制值加载数据本地 infile

标签 mysql csv

我为客户创建了一个 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/

相关文章:

javascript - 使用 php 将 mysql 数据转换为 javascript 图表

mysql - SQL 内部连接和自然连接

涉及字节文字的 python 3.4 条件返回 false 而不是 true

java - 将 Java 对象序列化为 CSV

R read.table csv with classic-mac 行结尾

javascript - 使用ajax在while循环中更新MySql数据库记录 - 仅更新第一行

mysql - 日期从 yyyy-mm-dd 转换为 yyyy-mm-dd 转换年份到日期

r - 带有 colClasses : scan() expected 'a real' got 'NULL' 的 read.csv 中的错误

使用 `readr::read_csv_chunked()`批量读取csv文件

c# - 使用 FileHelpers 导入 CSV 文件