从csv文件中删除第一行并根据它创建表

时间:2012-05-03 08:02:21

标签: php mysql csv fastercsv

嗨,我正在努力做到这一点。

我正在尝试使用Windows中的php将 CSV 上传到 mysql atonce。所以我正在使用查询

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。
  3. 我希望第一行将从CSV中删除,即标题不应该在DB中有条目,并且自动创建的表名为CSV_file_name,列为CSV第一行的列。

    请不要在php和create table中回答CSV的第一行,因为删除第一行的问题仍然存在。

1 个答案:

答案 0 :(得分:3)

IGNORE 1 LINES添加到LOAD DATA命令的末尾。

正如manual所说:

  

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

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

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