我创建了一个这样的折扣表
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;
但它给了我一个错误。
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS' at line 3
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
非常感谢任何帮助。 提前致谢!!
萨米
最佳答案
您的示例数据似乎与您的导入语句不匹配:
- 竖线字符(不是逗号)分隔字段,并且
- 周围没有引号。
你可能想试试:
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/NewFolder/MYfile.csv'
INTO TABLE discounts(title,expired_date,amount)
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
请评论,如果这需要调整/进一步的细节。
关于mysql - 我想从我的 CSV 文件 (MySQL 8.0) 加载特定的列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57839021/