2017-06-12 311 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

我沒有說什麼情況下,目的是存儲任何數字,沒有四捨五入 –