日常工作中,我們經(jīng)常有場(chǎng)景需要用到內(nèi)容替換。例如:任務(wù)負(fù)責(zé)人變更,需要將A替換為B。這時(shí)replace就是很好的解決方案。
一、replace替換函數(shù)
函數(shù)原型:replace(object,search,replace)
解釋:將object字段中查找search內(nèi)容,若查找成功則替換為replace內(nèi)容
示例:如果需要將Owner中的'aaa'替換為‘bbb’
update TaskInfo set Owner=replace(Owner, 'aaa', 'bbb');
上述表達(dá)式的含義就是將TaskInfo表中Owner字段中的'aaa'替換為‘bbb’
二、replace into
replace的運(yùn)行和insert很相似,只有一點(diǎn)例外。當(dāng)一個(gè)表存在PRIMARY KEY或UNIQUE 索引時(shí),發(fā)生一條新記錄的KEY與某條老數(shù)據(jù)的KEY相同的條件下,insert會(huì)將新數(shù)據(jù)丟棄保留老數(shù)據(jù),而replace會(huì)刪除老數(shù)據(jù)并插入新數(shù)據(jù)。
注意:
1、若不存在PRIMARY KEY 或 UNIQUE 索引,replace功能與insert相同。
2、replace使用,必須同時(shí)擁有表的insert和delete權(quán)限
replace 的執(zhí)行流程
1、嘗試將新行插入到表中
2、當(dāng)因?yàn)閷?duì)于主鍵或唯一關(guān)鍵字出現(xiàn)重復(fù)關(guān)鍵字錯(cuò)誤而造成插入失敗時(shí),執(zhí)行如下步驟
2.1、從表中刪除含有重復(fù)關(guān)鍵字值的沖突行
2.2、再次嘗試把新行插入到表中