不能使用本地infile的加载数据替换表的内容

时间:2010-08-16 06:39:06

标签: mysql

加载数据本地infile'input.txt'替换为以'|'结尾的表t字段;似乎没有取代以前的内容,它创建了条目的重复副本,我也尝试了'忽略',但即使它不起作用..请告诉我我哪里出错..

我用...创建了d表。

create table t 
(name varchar(20),empid int,age int,dob date,`order` int,price int);

我的查询..

load data local infile 'empinput.txt' 
replace into table t fields terminated by '|' ignore 5 lines;

load data local infile 'empinput.txt' 
ignore into table t fields terminated by '|' ignore 5 lines;

似乎不起作用.. 我的input.txt文件有..

 gopakumar  |     3 |  20 | 1990-12-03 |     1 |    24 
 nitin      |     4 |  18 | 1992-07-30 |     2 |    48 
 prashant   |     5 |  20 | 1990-05-17 |     3 |    72 
 arunakumar |     2 |  21 | 1989-12-08 |     4 |    96 
 ravikiran  |    10 |  26 | 1984-06-14 |     6 |   144 
 abhi       |    32 |  21 | 1989-03-21 |     7 |   168 
 Amruthesh  |     1 |  22 | 1988-09-22 |     8 |   192 
 abcd       |    56 |  21 | 1989-09-09 |  NULL |   200 
 abhi       |    23 |  20 | 1990-08-08 |    12 |  1060 

提前感谢....

1 个答案:

答案 0 :(得分:0)

REPLACE只会替换具有相同主键(或唯一索引)的行。例如,如果您将表移出mysql,修改它并再次加载,它将更新原始行并添加新行。如果要在可能的情况下替换行,则需要在导入的文件中具有替换行的相同主键值。

MysqL Load Data Infile Reference