我有包含超过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);
这可能吗?或者我应该去触发?
答案 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);