国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - Mysql中Insert into xxx on duplicate key update問題

Mysql中Insert into xxx on duplicate key update問題

2019-12-06 15:53MYSQL教程網 Mysql

在看代碼的過程中碰到了這一用法,不太理解,google了一下。它的意義其實是如果在insert語句末尾制定了on duplicate key update語句的話,則當插入行會導致一個unique索引或者primary key中出現重復值,則執行update中的語句,否則才插入新

例如,如果列a被定義為unique,并且值為1,則下列語句有同樣的效果,也就是說一旦出入的記錄中存在a=1的情況,直接更新c = c + 1,而不執行c = 3的操作。 

復制代碼代碼如下:


insert into table(a, b, c) values (1, 2, 3) on duplicate key 
update c = c + 1;1 update table set c = c + 1 where a = 1; 


另外值得一提的是,這個語句知識mysql中,而標準sql語句中是沒有的。 

INSERT INTO .. ON DUPLICATE KEY更新多行記錄 

如果在INSERT語句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后會導致在一個UNIQUE索引或PRIMARY KEY中出現重復值,則執行舊行UPDATE;如果不會導致唯一值列重復的問題,則插入新行。例如,如果列a被定義為UNIQUE,并且包含值1,則以下兩個語句具有相同的效果: 

復制代碼代碼如下:


INSERT INTO TABLE (a,b,c) 
VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; 
UPDATE TABLE SET c=c+1 WHERE a=1; 


如果行作為新記錄被插入,則受影響行的值為1;如果原有的記錄被更新,則受影響行的值為2。 

如果你想了解更多關于INSERT INTO .. ON DUPLICATE KEY的功能說明,詳見MySQL參考文檔:13.2.4. INSERT語法 

現在問題來了,如果INSERT多行記錄, ON DUPLICATE KEY UPDATE后面字段的值怎么指定?要知道一條INSERT語句中只能有一個ON DUPLICATE KEY UPDATE,到底他會更新一行記錄,還是更新所有需要更新的行。這個問題困擾了我很久了,其實使用VALUES()函數一切問題都解決了。 

舉個例子,字段a被定義為UNIQUE,并且原數據庫表table中已存在記錄(2,2,9)和(3,2,1),如果插入記錄的a值與原有記錄重復,則更新原有記錄,否則插入新行: 

復制代碼代碼如下:


INSERT INTO TABLE (a,b,c) VALUES 
(1,2,3), 
(2,5,7), 
(3,3,6), 
(4,8,2) 
ON DUPLICATE KEY UPDATE b=VALUES(b); 


以上SQL語句的執行,發現(2,5,7)中的a與原有記錄(2,2,9)發生唯一值沖突,則執行ON DUPLICATE KEY UPDATE,將原有記錄(2,2,9)更新成(2,5,9),將(3,2,1)更新成(3,3,1),插入新記錄(1,2,3)和(4,8,2) 

注意:ON DUPLICATE KEY UPDATE只是MySQL的特有語法,并不是SQL標準語法!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧洲一级毛片 | 亚洲高清在线观看 | 先锋影音av在线 | 亚洲人免费视频 | 激情五月综合网 | 久久久国产视频 | 91久久精品视频 | 91麻豆精品国产91久久久更新资源速度超快 | 91麻豆产精品久久久久久 | 久久久久久99精品 | 久久综合久久综合久久综合 | 人人澡人人透人人爽 | 欧美第一区 | 欧美日韩精品久久久免费观看 | 热99久久 | 91精品国产综合久久香蕉最新版 | 亚洲成人午夜电影 | 激情五月婷 | 亚洲一区中文 | 久久男人 | 日韩第一页 | 国产免费av网站 | 国产黄色片免费观看 | 精品三级在线观看 | 亚洲欧美在线视频 | 午夜在线电影 | 亚洲三级黄色 | 欧美福利视频 | 干干人人 | 狠狠操网站 | 成人欧美一区二区三区在线播放 | 精品久| 久操成人 | 亚洲国产激情 | 黑人精品欧美一区二区蜜桃 | 中文字幕国产在线视频 | 成人在线观看网站 | 国产黄色大片 | 免费网站在线观看黄 | 日韩欧美综合 | 最近2019中文字幕大全视频10 |