2017-06-12 257 views
-1

我'尝试与此语句来导入以下数据:导入CSV文件到MySQL

LOAD DATA LOCAL INFILE 'C:/Users/path/Desktop/decitable.csv' 
INTO TABLE technical_center.decitable 
FIELDS TERMINATED BY ';' 
IGNORE 1 LINES 

的CSV数据:

intRow;deciRow 
4;2.43 

SQL数据字段被格式化为INT (11)和DECIMAL(11)。 执行导入语句后,我收到值4和2. 这个sql语句在mySQL工作台中的问题在哪里?

+0

您小数列不允许对于小数点后的任何数字。 https://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html – CBroe

+0

如果你想要十进制*的地方*你需要*定义*小数位,例如'DECIMAL(11,2)'。 – EJP

+0

解决了我的问题。非常感谢! – marciano

回答

-1

您的问题不在CSV或导入程序,请更改小数(10)DECIMAL(10,2),如果您需要在小数

希望两位这有助于

+0

但不为钱的价值。对于其他值,FLOAT不是比DOUBLE更好的解决方案,除非空间是主要问题,并且您知道您的值范围非常有限。 – EJP

+1

_“我个人推荐FLOAT作为更好的解决方案来保持数字有或没有小数” - 这实际上取决于数据实际上代表什么。如果它是例如货币价值,那么使用浮动将是严重的错误。 (如果你不知道为什么,那么我建议你做一些研究。) – CBroe

+0

我没有说什么情况下,目的是存储任何数字,没有四舍五入 –