mysql的replace的使用

mysql裏的replace使用有兩種情況,一種是replace語句,一種是replace函數,一個是語句一個是函數,一定區別清楚。


replace語句:插入數據

replace into tablename(filed1,filed2...) values(val1,val2...),(val1,val2...)...;



這裏replace和insert有什麼異同:

replace語句需要有delete和insert權限,因爲它具備替換擁有唯一索引或者主鍵索引重複數據的能力,也就是如果使用replace into插入的數據的唯一索引或者主鍵索引與之前的數據有重複的情況,將會刪除原先的數據,然後再進行添加。


如果replace插入數據的表沒有唯一索引或者主鍵索引,那麼它的行爲和insert毫無區別。

例子:



replace語句用法注意點:


1:如果replace的表有多個唯一索引,並且replace的數據複製了多個唯一索引的值,那麼可能單一行數據代替多個行的舊數據。



2:replace的數據取設置的值,如果沒有設置則會取默認的值,replace不能從當前行中引用值,也不能在新行中使用值。



3:由於replace會對唯一索引和主鍵索引重複的進行刪除和重新添加,如果有自增數據,且replace沒有設置成要替換的自增列數據,將可能會破壞其他表與該表老數據之間的關聯性。



replace函數:替換特定字符

update tablename set filedname=replace(filedname,str,replace_str);




發佈了52 篇原創文章 · 獲贊 121 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章