2016-03-06 51 views
0

我正試圖使用​​LOAD DATA LOCAL INFILE將數據從CSV導入到MySQL。對於所謂的 「數」 有我收到錯誤1366不正確的整數值的所有空值的整數列:1366不正確的整數值:將數據從CSV導入到mysql時出錯

我已經試過count = IF(@count='',NULL,@count)

CREATE TABLE MySchema.response:

CREATE TABLE MySchema.response 
(
`id` int, 
`name` varchar(500), 
`count` int, 
); 

將數據加載到表:

LOAD DATA LOCAL INFILE 'C:/response.csv' 
INTO TABLE MySchema.response 
FIELDS TERMINATED BY ',' optionally ENCLOSED by '"' 
ignore 1 lines 
(id, name, @count) 
SET count = IF(@count='',NULL,@count) 

樣本CSV文件數據

1,abc, 

2,xyz, 
+0

我遇到了同樣的問題,現在。你有沒有設法解決這個問題? –

回答

0

你忘了定義VAR,請參見下面正確LOAD DATA INFILE ...聲明:

[email protected] [test]> SHOW CREATE TABLE `Response`\G 
*************************** 1. row *************************** 
     Table: Response 
Create Table: CREATE TABLE `Response` (
    `id` int(11) DEFAULT NULL, 
    `name` varchar(500) DEFAULT NULL, 
    `count` int(11) DEFAULT NULL 
) 

[email protected] [test]> LOAD DATA INFILE '~/Desktop/data.csv' INTO TABLE Response FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (id, name, @count) SET count = IF(@count = '', NULL, @count); 

[email protected] [test]> SELECT * FROM `Response`; 
+------+------+-------+ 
| id | name | count | 
+------+------+-------+ 
| 1 | abc | NULL | 
| 2 | xyz | 12345 | 
+------+------+-------+ 

文件data.csv

1,abc, 
2,xyz,12345 
+0

對不起,這是一個錯字...我已經定義了var –

相關問題