1

嗨,我正在努力。

我正在尝试通过在 Windows 中使用 php将CSV一次上传到mysql中。所以我正在使用查询

LOAD DATA INFILE 'c:/Data/mysql/transaction_upload.csv'
INTO TABLE transaction_upload
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n';

它将我的整个 csv 加载到表中。

问题是:

  1. 条件是表“transaction_upload”应该已经存在。
  2. 它也上传包含标题的第一行csv。

我希望从 CSV 中删除第一行,即标题不应在 DB 中有条目,并且自动创建的表名称为 CSV_file_name,列为 CSV 第一行的列。

请不要回答为在 php 中读取 CSV 的第一行并创建表,因为从中删除第一行的问题仍然存在。

4

1 回答 1

3

添加IGNORE 1 LINESLOAD DATA命令的末尾。

正如手册所说:

该选项可用于忽略文件开头的行。例如,您可以使用跳过包含列名的初始标题行:IGNOREnumberLINESIGNORE 1 LINES

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;

如果该表尚不存在,MySQL 将引发错误。

于 2012-05-03T08:03:11.643 回答