2016-02-27 58 views
0

我想在MySQL上使用加載數據infile功能,並且我的所有行都被跳過。我嘗試了其他線程的所有解決方案,但找不到解決我的問題的解決方案。我做錯了什麼,MySQL繼續跳過我的所有行?加載數據infile所有跳過行

查詢

LOAD DATA LOCAL INFILE 'C:\\Stockton\\DataFiles\\emaimport.csv' INTO TABLE moving_average 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(@col1, @col2, @col3) set [email protected],[email protected],[email protected]; 

表結構(僅插入到列MA15)數據的

CREATE TABLE `moving_average` (
    `ma_symbol` varchar(50) NOT NULL, 
    `ma_date` date NOT NULL, 
    `ma5` decimal(12,6) DEFAULT NULL, 
    `ma10` decimal(12,6) DEFAULT NULL, 
    `ma15` decimal(12,6) DEFAULT NULL, 
    `ma20` decimal(12,6) DEFAULT NULL, 
    `ma25` decimal(12,6) DEFAULT NULL, 
    `ma30` decimal(12,6) DEFAULT NULL, 
    `ma35` decimal(12,6) DEFAULT NULL, 
    `ma40` decimal(12,6) DEFAULT NULL, 
    `ma45` decimal(12,6) DEFAULT NULL, 
    `ma50` decimal(12,6) DEFAULT NULL, 
    `ma100` decimal(12,6) DEFAULT NULL, 
    `ma200` decimal(12,6) DEFAULT NULL, 
    PRIMARY KEY (`ma_symbol`,`ma_date`), 
    CONSTRAINT `fk_symbol_moving_average` FOREIGN KEY (`ma_symbol`) REFERENCES `company` (`symbol`) ON DELETE CASCADE ON UPDATE NO ACTION 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

實施例被輸入

TR,2016-02-18,29.919117000 
TR,2016-02-19,30.045367375 
TR,2016-02-22,29.994117375 
TR,2016-02-23,30.015367125 
TRC,2011-02-15,26.705000000 
TRC,2011-02-16,26.777500125 
TRC,2011-02-17,26.757499750 
TRC,2011-02-18,26.758750000 

回答

0

你的查詢需要一個STR_TO_DATE函數爲date字段。

像這樣:

LOAD DATA LOCAL INFILE 'C:\\Stockton\\DataFiles\\emaimport.csv' INTO TABLE moving_average 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(@col1, @col2, @col3) set [email protected],ma_date=STR_TO_DATE(@col2,'%Y-%m-%d'),[email protected]; 
+1

這仍然跳過所有行。 –

+0

@Fenriqe Duggledorf:您的數據示例也沒有字符串格式的數據。應該是:'TR','2016-02-18',29.919117000' –