淺析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ù),這將導致表中出現(xiàn)重復的數(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” 關鍵字可以省略,不過最好加上 “into”,這樣意思更加直觀。另外,對于那些沒有給予值的列,MySQL 將自動為這些列賦上默認值。
- MySQL into_Mysql中replace與replace into用法案例詳解
- 細說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ū)別詳解
相關文章
MySQL中有哪些情況下數(shù)據(jù)庫索引會失效詳析
這篇文章主要給大家介紹了關于MySQL中有哪些情況下數(shù)據(jù)庫索引會失效的相關資料,文中通過圖文介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07一文帶你理解MySql中explain結(jié)果filtered
使用EXPLAIN關鍵字可以模擬優(yōu)化器執(zhí)行SQL查詢語句,從而知道MySQL是如何處理你的SQL語句的,下面這篇文章主要給大家介紹了關于MySql中explain結(jié)果filtered的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09