某表内结构: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:怎样在插入后获得这四行的主键或某字段内容集?

解决方案 »

  1.   


    问题1: 自己动手试一下就知道了。问题2: 没有办法,只能得到最后一条自动生成的auto_increment.
      

  2.   

    法一:replace你可以先使用手册中的例子。
    法二:可以用mysql取出数据来,再在php中使用替换。
      

  3.   

    问题1:上面的命令是插入三个新行Li、Tang、Jiang,并删除原有主键32的行,插入新主键32的行对吗?REPLACE的运行与INSERT很相像。只有一点除外,如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除问题2:怎样在插入后获得这四行的主键或某字段内容集?
    插入后获得?插入的值你不知道吗