2014-02-13 47 views
1

這裏是原始CSV(從Quandl)的一個片段:負載CSV到MySQL工作臺表

Date,Open,High,Low,Close,Volume_BTC,Volume_Dollar,Weighted_Price 
13/02/2014,650.04,660,645.07,645.24,4027.229102,2628148.177,652.5946528 
12/02/2014,677,685.19,631.58,651.99,15511.78726,10224606.46,659.1507667 

這裏是SQL代碼,我想,這我已經嘗試了許多排列:

load data local infile '/../BITSTAMPUSD.csv' 
into table test.BTC 
CHARACTER SET utf8 
FIELDS TERMINATED BY ',' 
enclosed by "" 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES; 

這是我一直得到的錯誤:

1 row(s) affected, 8 warning(s): 1265 Data truncated for column 'Date' at row 1 1265 Data truncated for column 'Open' at row 1 1265 Data truncated for column 'High' at row 1 1265 Data truncated for column 'Low' at row 1 1265 Data truncated for column 'Close' at row 1 1265 Data truncated for column 'Volume_BTC' at row 1 1265 Data truncated for column 'Volume_Dollar' at row 1 1265 Data truncated for column 'Weighted_Price' at row 1 Records: 1 Deleted: 0 Skipped: 0 Warnings: 8 

這裏是我用來生成表格是代碼搭配:

CREATE TABLE BTC(
    Date DATE, 
    Open FLOAT, 
    High FLOAT, 
    Low FLOAT, 
    Close FLOAT,  
    Volume_BTC FLOAT, 
    Volume_Dollar FLOAT, 
    Weighted_Price FLOAT 
) 

我一直在打我的頭靠在這個問題有一段時間了,所以任何的幫助深表感謝。

更新:我已經嘗試了一些建議,仍然沒有解決。我懷疑它與線路終止有關。我使用Mac是有所作爲的。 '/ n'是否正確?

+0

在MySQL 5.3.34上,我可以實際導入你指定的文件(除了錯誤的日期格式,(請參閱[這個問題])(http://stackoverflow.com/questions/10102167/load-data -infile-easily-convert-yyyymmdd-to-yyyy-mm-dd)來解決這個問題)。 –

+0

如果使用工作臺,另一種方法是通過數據導入/導出嚮導運行它。 – chrisboustead

回答

1

您可以使用str_to_date一個字段轉換導入它的時候,在這個例子中,其中最後兩行被添加到您的代碼:

load data local infile '/../BITSTAMPUSD.csv' 
into table BTC 
CHARACTER SET utf8 
FIELDS TERMINATED BY ',' 
enclosed by "" 
LINES TERMINATED BY '\r' 
IGNORE 1 LINES 
(@date,Open,High,Low,Close,Volume_BTC,Volume_Dollar,Weighted_Price) 
SET `Date` = DATE_FORMAT(STR_TO_DATE(@date, '%d/%m/%Y'), '%Y/%m/%d'); 

對於Mac我還認爲你需要使用「\ r '終止線路。

我曾嘗試創建您的表格並導入一個包含您的數據的文件,並且它在上面的「加載數據」查詢中工作得很好。所以行終止可能是唯一缺少的東西...

+0

謝謝,這有助於我獲得正確的日期格式,但沒有解決我沒有使用'\ r'作爲行結尾的問題,因爲我使用mac –

+1

我更新了我的答案\ r以及... – Ohlin

+0

我很高興我可以幫助:) – Ohlin

1

LINES TERMINATED BY '\n'更改爲LINES TERMINATED BY '\r'解決了我的問題!

對於windows使用'\ n',對於mac使用'\ r'。