mysql - 我想从我的 CSV 文件 (MySQL 8.0) 加载特定的列数据

标签 mysql csv loaddata

我创建了一个这样的折扣表

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/

相关文章:

mysql - 将 3rd 方报告工具连接到 MySQL

php - Mysql今天日期

python - typeerror '_csv.reader' 对象不可订阅

MySQL:我可以在逗号分隔的字段上执行 for-each 吗?

PHP 未将 MySQL 写入 CSV

tensorflow - 如何从子目录加载tensorflow中的数据

php - Yii2如何显示表格中的数据并查询另一个表格中的每一行数据

php - 使用 Jquery Mobile 的数据库

php - 从远程服务器加载数据 INFILE 出现错误

mysql - 在mysql错误中加载数据infile