MySQL replace into 的用法

MySQL replace into 的用法

语法:

Sql代码 
  1. REPLACE [LOW_PRIORITY | DELAYED]  
  2.     [INTO] tbl_name  
  3.     [PARTITION (partition_name,...)]  
  4.     [(col_name,...)]  
  5.     {VALUES | VALUE} ({expr | DEFAULT},...),(...),...  

replace 和insert的作用是一样的,都是插入数据,当用insert 插入数据时,如果插入的记录包含的主键或者唯一索引已经存在,则会插入失败

例如:

 

 

而使用replace,如果出现这种情况,那么首先已存在的记录会被删掉,然后再插入新的记录

例如:



 可以看到affected rows为2,replace的affected rows = 被删除的行数 + 新插入的行数

要实现已存在则更新的的效果还可以用insert into ... on duplicate key update ...的语法,例如

 

values函数的参数是列名,返回当前插入的行所对应的该列的值 

可以看到如果当primary key已存在时,不会进行插入,而是执行update后面的逻辑

猜你喜欢

转载自lixiaohui.iteye.com/blog/2343902