欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中on?duplicate?key?update的使用方法實(shí)例

 更新時(shí)間:2022年09月09日 11:27:22   作者:厄爾尼諾的夏天  
在做數(shù)據(jù)統(tǒng)計(jì)的時(shí)候,我們經(jīng)常會(huì)用到mysql的on duplicate key update語法來自動(dòng)更新數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL中on?duplicate?key?update的使用方法的相關(guān)資料,需要的朋友可以參考下

 mysql的存在就更新不存在就插入實(shí)現(xiàn)

先建數(shù)據(jù)庫表,重點(diǎn)要添加主鍵索引(id列,沒有測試)和唯一索引(branch_no列),隨便找表測試

INSERT INTO t_name ( c1, c2, c3 )
VALUES
	( 1, '1', '1') 
	ON DUPLICATE KEY UPDATE
	c2 = '2';

測試:

1、organ_no, branch_no, branch_name, created_by字段都不相同

2、branch_name, created_by不同

3、唯一索引branch_no不同

4、修改的值包括了唯一索引值branch_no

現(xiàn)在數(shù)據(jù)庫表內(nèi)容

1、執(zhí)行sql  :organ_no, branch_no, branch_name, created_by字段都不相同

INSERT INTO t_bank_organ_copy1 ( organ_no, branch_no, branch_name, created_by )
VALUES
	( 1, '3', '浙江分行', '3' ) 
	ON DUPLICATE KEY UPDATE
	branch_name = '江蘇分行';

 因?yàn)闆]有值相同,所以一定添加

2、branch_name, created_by與表中數(shù)據(jù)不同

INSERT INTO t_bank_organ_copy1 ( organ_no, branch_no, branch_name, created_by )
VALUES
	( 1, '3', '海南分行', '4' ) 
	ON DUPLICATE KEY UPDATE
	branch_name = '江蘇分行';

第三條數(shù)據(jù)從浙江分行改變成了江蘇分行

 ON DUPLICATE KEY UPDATE 后的值是要修改的值

而這個(gè)會(huì)根據(jù)唯一索引進(jìn)行查詢,其他普通列不做匹配(主鍵也是做匹配的)

可以通過下條驗(yàn)證

3、唯一索引branch_no不同

INSERT INTO t_bank_organ_copy1 ( organ_no, branch_no, branch_name, created_by )
VALUES
	( 1, '4', '江蘇分行', '3' ) 
	ON DUPLICATE KEY UPDATE
	branch_name = '海南分行';

除了唯一索引branch_no不同,其他列都相同

執(zhí)行后數(shù)據(jù)庫增加一條 

4、修改的值包括了唯一索引值branch_no

下面對唯一索引進(jìn)行修改嘗試

INSERT INTO t_bank_organ_copy1 ( organ_no, branch_no, branch_name, created_by )
VALUES
	( 1, '4', '江蘇分行', '3' ) 
	ON DUPLICATE KEY UPDATE
	branch_name = '海南分行',
	branch_no = '8';

修改branch_no 4為8,并修改branch_name為海南分行

可以看出對唯一索引和普通列都做了修改

總結(jié):

1、mysql的存在就更新不存在就插入可由on duplicate key update語法實(shí)現(xiàn);

2、不過只會(huì)檢查添加列中有沒有匹配到主鍵id和唯一索引的重復(fù)項(xiàng);

3、如果有重復(fù)項(xiàng)會(huì)在on duplicate key update后進(jìn)行修改指定的字段和內(nèi)容;

4、所涉及的唯一索引也是可以修改的;

最后也可這樣寫:

原數(shù)據(jù)庫表

INSERT INTO t_bank_organ_copy1 ( organ_no, branch_no, branch_name, created_by )
VALUES
	( 1, '8', '河南分行', '3' ) 
	ON DUPLICATE KEY UPDATE
	branch_name = values(branch_name);

 修改成了河南分行

到此這篇關(guān)于MySQL中on duplicate key update使用方法的文章就介紹到這了,更多相關(guān)MySQL on duplicate key update使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • CentOS7環(huán)境下MySQL8常用命令小結(jié)

    CentOS7環(huán)境下MySQL8常用命令小結(jié)

    在進(jìn)行MySQL的優(yōu)化之前必須要了解的就是MySQL的查詢過程,下面這篇文章主要給大家介紹了關(guān)于CentOS7環(huán)境下MySQL8常用命令的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • MySQL存儲(chǔ)過程圖文實(shí)例講解

    MySQL存儲(chǔ)過程圖文實(shí)例講解

    雖然MySQL的存儲(chǔ)過程一般情況下是不會(huì)使用到的,但是在一些特殊場景中,還是有需求的,下面這篇文章主要給大家介紹了關(guān)于MySQL存儲(chǔ)過程的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • MySQL 添加、修改、刪除表的列及約束等表的定義

    MySQL 添加、修改、刪除表的列及約束等表的定義

    這篇文章主要介紹了MySQL 添加、修改、刪除表的列及約束等表的定義,需要的朋友可以參考下
    2014-03-03
  • mysql踩坑之limit與sum函數(shù)混合使用問題詳解

    mysql踩坑之limit與sum函數(shù)混合使用問題詳解

    這篇文章主要給大家介紹了關(guān)于mysql踩坑之limit與sum函數(shù)混合使用問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 低版本Druid連接池+MySQL驅(qū)動(dòng)8.0導(dǎo)致線程阻塞、性能受限

    低版本Druid連接池+MySQL驅(qū)動(dòng)8.0導(dǎo)致線程阻塞、性能受限

    應(yīng)用升級MySQL驅(qū)動(dòng)8.0后,在并發(fā)量較高時(shí),查看監(jiān)控打點(diǎn),Druid連接池拿到連接并執(zhí)行SQL的時(shí)間大部分都超過200ms,本文就解決一下這個(gè)問題
    2021-07-07
  • mysql存儲(chǔ)過程詳解

    mysql存儲(chǔ)過程詳解

    我們常用的操作數(shù)據(jù)庫語言SQL語句在執(zhí)行的時(shí)候需要要先編譯,然后執(zhí)行,而存儲(chǔ)過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫中,用戶通過指定存儲(chǔ)過程的名字并給定參數(shù)(如果該存儲(chǔ)過程帶有參數(shù))來調(diào)用執(zhí)行它
    2012-07-07
  • MySQL之InnoDB下的鎖問題

    MySQL之InnoDB下的鎖問題

    這篇文章主要介紹了MySQL之InnoDB下的鎖問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • mysql如何查詢重復(fù)數(shù)據(jù)并刪除

    mysql如何查詢重復(fù)數(shù)據(jù)并刪除

    這篇文章主要介紹了mysql如何查詢重復(fù)數(shù)據(jù)并刪除問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 當(dāng)mysqlbinlog版本與mysql不一致時(shí)可能導(dǎo)致出哪些問題

    當(dāng)mysqlbinlog版本與mysql不一致時(shí)可能導(dǎo)致出哪些問題

    這篇文章主要介紹了當(dāng)mysql服務(wù)器為mysql5.6時(shí),mysqlbinlog版本不對可能導(dǎo)致出哪些問題,下面通過模擬2種場景分析此類問題,需要的朋友可以參考下
    2015-07-07
  • MySQL字段類型全面解讀

    MySQL字段類型全面解讀

    這篇文章主要介紹了MySQL字段類型,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評論