www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]討人喜歡的 MySQL replace into 用法(insert into 的增強版)在向表中插入數(shù)據(jù)的時候,經(jīng)常遇到這樣的情況:1. 首先判斷數(shù)據(jù)是否存在; 2. 如果不存在,則插入;3.如果存

討人喜歡的 MySQL replace into 用法(insert into 的增強版)


在向表中插入數(shù)據(jù)的時候,經(jīng)常遇到這樣的情況:1. 首先判斷數(shù)據(jù)是否存在; 2. 如果不存在,則插入;3.如果存在,則更新。

在 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 有三種形式:

1.?replace?into?tbl_name(col_name,?...)?values(...)
2.?replace?into?tbl_name(col_name,?...)?select?...
3.?replace?into?tbl_name?set?col_name=value,?...

前兩種形式用的多些。其中 “into” 關(guān)鍵字可以省略,不過最好加上 “into”,這樣意思更加直觀。另外,對于那些沒有給予值的列,MySQL 將自動為這些列賦上默認值。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

關(guān)于gorm框架的簡單運用

關(guān)鍵字: gorm mysql

來源:https://juejin.cn/post/6860252224930070536|?背景日志是?mysql?數(shù)據(jù)庫的重要組成部分,記錄著數(shù)據(jù)庫運行期間各種狀態(tài)信息。mysql日志主要包括錯誤日志、查詢?nèi)罩?、慢?..

關(guān)鍵字: mysql

mysql的一行記錄,最終肯定是存儲在磁盤上,也就是肉眼可見的文件上,今天我們的目標很簡單,就是看看它到底是怎么存的。當(dāng)然還有一個更重要的目標,就是以這個為引子,帶大家完全通過一手資料,來揭秘這個問題的答案。所以大家閱讀...

關(guān)鍵字: mysql

跟著官方文檔 源碼 源文件三件套自己探索

關(guān)鍵字: mysql 存儲

什么Mysql的事務(wù)?事務(wù)的四大特性?事務(wù)帶來的什么問題?你詳細了解過MVCC嗎?它是怎么工作的?

關(guān)鍵字: mysql 嵌入式

想進大廠,mysql不會那可不行,來接受mysql面試挑戰(zhàn)吧,看看你能堅持到哪里?

關(guān)鍵字: mysql 嵌入式

最近,在開發(fā)一個分庫分表中間件,由于功能需求,需要分析MySQL協(xié)議,發(fā)現(xiàn)網(wǎng)上對于MySQL協(xié)議分析的文章大部分都過時了,原因是分析的MySQL版本太低了。怎么辦?于是乎,我便硬著頭皮開始啃MySQL源碼,經(jīng)過兩個多月的...

關(guān)鍵字: mysql 嵌入式

想進大廠,Mysql不會那可不行,來接受Mysql面試挑戰(zhàn)吧,看看你能堅持到哪里?

關(guān)鍵字: mysql 嵌入式

Explain被稱為執(zhí)行計劃,在語句之前增加explain關(guān)鍵字,MySQL會在查詢上設(shè)置一個標記,模擬MySQL優(yōu)化器來執(zhí)行SQL語句,執(zhí)行查詢時,會返回執(zhí)行計劃的信息,并不執(zhí)行這條SQL。

關(guān)鍵字: mysql 嵌入式

什么是事務(wù)?事務(wù)是應(yīng)用程序中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務(wù)具有原子性,一個事務(wù)中的一系列的操作要么全部成功,要么一個都不做。

關(guān)鍵字: mysql 嵌入式
關(guān)閉