簡體   English   中英

將CSV加載到MySQL Workbench表中

[英]Load CSV into MySQL Workbench table

這是原始csv的片段(來自Quandl):

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'是正確的嗎?

導入字段時,可以使用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'終止行。

我確實嘗試創建您的表並導入一個保存您的數據的文件,它與上面的“加載數據”查詢一起正常工作。 所以線路終止可能是唯一缺少的東西...

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

對於Windows使用'\\ n',對於Mac使用'\\ r'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM