MySQL replace into 的用法
MySQL replace into 的用法
语法:
- REPLACE [LOW_PRIORITY | DELAYED]
- [INTO] tbl_name
- [PARTITION (partition_name,...)]
- [(col_name,...)]
- {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
replace 和insert的作用是一样的,都是插入数据,当用insert 插入数据时,如果插入的记录包含的主键或者唯一索引已经存在,则会插入失败
例如:
而使用replace,如果出现这种情况,那么首先已存在的记录会被删掉,然后再插入新的记录
例如:
可以看到affected rows为2,replace的affected rows = 被删除的行数 + 新插入的行数
要实现已存在则更新的的效果还可以用insert into ... on duplicate key update ...的语法,例如
values函数的参数是列名,返回当前插入的行所对应的该列的值
可以看到如果当primary key已存在时,不会进行插入,而是执行update后面的逻辑