淺析MySQL replace into 的用法
在 SQL Server 中可以這樣處理:
if not exists (select 1 from t where id = 1)
insert into t(id, update_time) values(1, getdate())
else
update t set update_time = getdate() where id = 1
那么 MySQL 中如何實現(xiàn)這樣的邏輯呢?別著急!MySQL 中有更簡單的方法: replace into
replace into t(id, update_time) values(1, now());
或
replace into t(id, update_time) select 1, now();
replace into 跟 insert 功能類似,不同點在于:replace into 首先嘗試插入數(shù)據(jù)到表中, 1. 如果發(fā)現(xiàn)表中已經(jīng)有此行數(shù)據(jù)(根據(jù)主鍵或者唯一索引判斷)則先刪除此行數(shù)據(jù),然后插入新的數(shù)據(jù)。 2. 否則,直接插入新數(shù)據(jù)。 要注意的是:插入數(shù)據(jù)的表必須有主鍵或者是唯一索引!否則的話,replace into 會直接插入數(shù)據(jù),這將導(dǎo)致表中出現(xiàn)重復(fù)的數(shù)據(jù)。
MySQL replace into 有三種形式:
replace into tbl_name(col_name, ...) values(...)
replace into tbl_name(col_name, ...) select ...
replace into tbl_name set col_name=value, ...
前兩種形式用的多些。其中 “into” 關(guān)鍵字可以省略,不過最好加上 “into”,這樣意思更加直觀。另外,對于那些沒有給予值的列,MySQL 將自動為這些列賦上默認(rèn)值。
- MySQL into_Mysql中replace與replace into用法案例詳解
- 細(xì)說mysql replace into用法
- mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點實例分析
- Mysql中replace與replace into的用法講解
- mysql 的replace into實例詳解
- MySQL中replace into語句的用法詳解
- MySQL中REPLACE INTO和INSERT INTO的區(qū)別分析
- MySQL Replace INTO的使用
- MySQL中replace into與replace區(qū)別詳解
相關(guān)文章
很全面的MySQL處理重復(fù)數(shù)據(jù)代碼
這篇文章主要為大家詳細(xì)介紹了MySQL處理重復(fù)數(shù)據(jù)的實現(xiàn)代碼,如何防止數(shù)據(jù)表出現(xiàn)重復(fù)數(shù)據(jù)及如何刪除數(shù)據(jù)表中的重復(fù)數(shù)據(jù),感興趣的小伙伴們可以參考一下2016-05-05MySQL中有哪些情況下數(shù)據(jù)庫索引會失效詳析
這篇文章主要給大家介紹了關(guān)于MySQL中有哪些情況下數(shù)據(jù)庫索引會失效的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07一文帶你理解MySql中explain結(jié)果filtered
使用EXPLAIN關(guān)鍵字可以模擬優(yōu)化器執(zhí)行SQL查詢語句,從而知道MySQL是如何處理你的SQL語句的,下面這篇文章主要給大家介紹了關(guān)于MySql中explain結(jié)果filtered的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09