亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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語(yǔ)法來(lái)自動(dòng)更新數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL中on?duplicate?key?update的使用方法的相關(guān)資料,需要的朋友可以參考下

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

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

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

測(cè)試:

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

2、branch_name, created_by不同

3、唯一索引branch_no不同

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

現(xiàn)在數(shù)據(jù)庫(kù)表內(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)闆](méi)有值相同,所以一定添加

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)行查詢(xún),其他普通列不做匹配(主鍵也是做匹配的)

可以通過(guò)下條驗(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ù)庫(kù)增加一條 

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

下面對(duì)唯一索引進(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為海南分行

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

總結(jié):

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

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

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

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

最后也可這樣寫(xiě):

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

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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論