【发布时间】:2020-01-10 08:03:35
【问题描述】:
我创建了一个这样的折扣表
CREATE TABLE discounts (
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
expired_date DATE NOT NULL,
amount DECIMAL(10 , 2 ) NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
我想从我的 CSV 中导入特定的列数据(标题、过期日期、金额)。所以我使用以下 SQL 行。
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/NewFolder/MYfile.csv'
INTO TABLE discounts(title,expired_date,amount)
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
但它给了我一个错误。
错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 'FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS' 附近使用正确的语法
MyFile.csv 是这样的
date |title |expired_date | amount | sales_person
2019/08/12 |ABC Company |2019/08/12 |200 | John
2019/08/15 |Aroma Company |2019/08/16 |22 | Anna
2019/08/15 |Risona Company|2019/08/16 |268 | Anna
非常感谢任何帮助。 提前致谢!!
萨米
【问题讨论】:
-
如果准确,您的 CSV 样本似乎在许多地方都有额外的空白填充。另请注意,
title列是第二个,而不是第一个。 -
错误信息是什么?
-
你好,Paul 这是错误 12:55:22 LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/NewFolder/MYfile.csv' INTO TABLE discounts(title,expired_date ,amount) FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS Error Code: 1064. 您的 SQL 语法有误;请查看与您的 MySQL 服务器版本对应的手册在第 3 行 0.000 秒的 'FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS' 附近使用正确的语法 0.000 秒
-
您是否尝试使用 ˋFIELDS TERMINATED BY '|'ˋ(并且没有 ˋENCLOSED BY '"'ˋ)?
-
是的!但没有运气