将CSV加载到MySQL工作台表中

将CSV加载到MySQL工作台表中,mysql,sql,csv,Mysql,Sql,Csv,以下是原始csv的片段(来自Quandl): 下面是我正在尝试的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 w

以下是原始csv的片段(来自Quandl):

下面是我正在尝试的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\u to\u 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”来终止线路


我确实尝试过创建您的表并导入一个保存数据的文件,它与上面的“加载数据”查询配合得很好。因此,行终止可能是唯一缺少的东西…

将由“\n”终止的
行更改为由“\r”
终止的
行修复了我的问题


windows使用“\n”,mac使用“\r”。

在MySQL 5.3.34上,我可以按照您指定的格式导入您的文件(除了错误的日期格式,(请参阅以解决此问题)。如果使用workbench,另一种选择是通过数据导入/导出向导运行它。谢谢,这帮助我获得了正确的日期格式,但没有解决我的问题,因为我使用macI时没有使用“\r”作为行尾。我很高兴我能帮上忙:)
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');