日常工作中,我们经常有场景需要用到内容替换。例如:任务负责人变更,需要将A替换为B。这时replace就是很好的解决方案。
一、replace替换函数
函数原型:replace(object,search,replace)
解释:将object字段中查找search内容,若查找成功则替换为replace内容
示例:如果需要将Owner中的'aaa'替换为‘bbb’
update TaskInfo set Owner=replace(Owner, 'aaa', 'bbb');
上述表达式的含义就是将TaskInfo表中Owner字段中的'aaa'替换为‘bbb’
二、replace into
replace的运行和insert很相似,只有一点例外。当一个表存在PRIMARY KEY或UNIQUE 索引时,发生一条新记录的KEY与某条老数据的KEY相同的条件下,insert会将新数据丢弃保留老数据,而replace会删除老数据并插入新数据。
注意:
1、若不存在PRIMARY KEY 或 UNIQUE 索引,replace功能与insert相同。
2、replace使用,必须同时拥有表的insert和delete权限
replace 的执行流程
1、尝试将新行插入到表中
2、当因为对于主键或唯一关键字出现重复关键字错误而造成插入失败时,执行如下步骤
2.1、从表中删除含有重复关键字值的冲突行
2.2、再次尝试把新行插入到表中