使用txt文件加载数据INFILE

时间:2013-02-20 17:38:17

标签: mysql sql load-data-infile

我有包含超过50000条记录的txt文件。这4条记录(pid,#_ pro_used,notused,selected)与制表符空格分开。我想将这些记录插入到有5列的表中(索引,pid, #_pro_used,notused,selected)..额外的一个(索引)列应该是包含记录计数的主键。

我已经使用过这个命令..但是它没有用。

  LOAD DATA LOCAL INFILE 'D:/temp.txt' INTO TABLE temp_table    (COUNT(pid),pid,#_pro_used,notused,selected);

这可能吗?或者我应该去触发?

1 个答案:

答案 0 :(得分:2)

您不能使用COUNT(pid)来计算到目前为止插入的条目数。创建一个带有自动增量列的表,并跳过“COUNT(pid)”部分,所以:

CREATE TABLE temp_table (
  idx INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  pid ...
  pro_used ...
  notused
  selected
);

LOAD DATA LOCAL INFILE 'D:/temp.txt'
INTO TABLE temp_table (pid,pro_used,notused,selected);

请注意:您有一个名为“未使用”的列,我假设您要忽略该列。你可以在这里使用一个用户定义的变量,这样就可以抛弃数据了:

LOAD DATA LOCAL INFILE 'D:/temp.txt'
INTO TABLE temp_table (pid,pro_used,@notused,selected);