日期:2014-05-16  浏览次数:20727 次

用replace 插入或更新行,如何返回改行主键或某字段?
某表内结构:

PID int auto_increment not null primary key,
name varchar(50);
表内现有一些数据。

用户传入数据组给程序,程序会直接用replace into XXTable (PID,name) values (null,'Li'),('32','Wang'),('null','Tang'),('null','Jiang');

问题1:上面的命令是插入三个新行Li、Tang、Jiang,并删除原有主键32的行,插入新主键32的行对吗?

问题2:怎样在插入后获得这四行的主键或某字段内容集?

------解决方案--------------------
探讨
某表内结构:

PID int auto_increment not null primary key,
name varchar(50);
表内现有一些数据。

用户传入数据组给程序,程序会直接用replace into XXTable (PID,name) values (null,'Li'),('32','Wang'),('null','Tang'),('null','Jiang……

------解决方案--------------------
法一:replace你可以先使用手册中的例子。
法二:可以用mysql取出数据来,再在php中使用替换。
------解决方案--------------------
问题1:上面的命令是插入三个新行Li、Tang、Jiang,并删除原有主键32的行,插入新主键32的行对吗?

REPLACE的运行与INSERT很相像。只有一点除外,如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除

问题2:怎样在插入后获得这四行的主键或某字段内容集?
插入后获得?插入的值你不知道吗