1. insert

标准的sql语句中,插入数据只有一种形式insert into tablename (列明) values (列值);
插入多条insert into tablename (列明) values (列值),(列值),(列值);
mysql中还有另一中插入数据方式,insert into tablename set column1=val1,column2=val2;
insert into tablrname () value();遇到都是空值的情况,会插入一条数据,值是默认值

  1. replace

语句 replace into tablename (列明) values (列值);
或者 replace into tablename set column1=val1,column2=val2;
插入多条 replace into tablename (列明) values (列值),(列值),(列值);
replace使用场景:遇到存在就更新,不存在就插入
replace将delete和insert结合,形成一个原子操作,避免使用事务
replace使用时表中一定要有唯一索引,否则就和insert效果一样
replace执行后返回所影响的行数,返回1表示没有重复记录,等同insert,返回2表示有一条重复的记录,效果是先delete后insert,如果返回值大于2,表示表中有多个唯一索引,

table 中a,b,c,上字段都是唯一索引有值
a b c
1 1 1
2 2 2
3 3 3
执行 replace insert table(a,b,c) values(1,2,3);
执行后返回4,数据库最后数据
a b c
1 2 3
replace会对比每一个唯一索引的值,只要有重复就会删除替换


高鹏
0 声望1 粉丝