最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL 處理插入過程中的主鍵唯一鍵重復值的解決方法

 更新時間:2016年04月15日 09:26:27   投稿:mrr  
本篇文章主要介紹在插入數(shù)據(jù)到表中遇到鍵重復避免插入重復值的處理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE的相關(guān)知識,感興趣的朋友一起學習吧

本篇文章主要介紹在插入數(shù)據(jù)到表中遇到鍵重復避免插入重復值的處理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE;接下來就分別看看這三種方式的處理辦法。

IGNORE

使用ignore當插入的值遇到主鍵(PRIMARY KEY)或者唯一鍵(UNIQUE KEY)重復時自動忽略重復的記錄行,不影響后面的記錄行的插入,

創(chuàng)建測試表

CREATE TABLE Tignore
(ID INT NOT NULL PRIMARY KEY ,
NAME1 INT
)default charset=utf8; 

正常的插入如果插入的記錄中存在鍵重復會報錯,整個語句都會執(zhí)行失敗

使用IGNORE如果插入的記錄中存在重復值會忽略重復值的該記錄行,不影響其它行的插入。

REPLACE

使用replace當插入的記錄遇到主鍵或者唯一鍵重復時先刪除表中重復的記錄行再插入。

REPLACE INTO Treplace() VALUES(1,1),(1,2),(2,2); 

創(chuàng)建測試表

DROP TABLE IF EXISTS Treplace;
CREATE TABLE Treplace
(ID INT NOT NULL PRIMARY KEY ,
NAME1 INT
)default charset=utf8; 

從輸出的信息可以看到是4行受影響,說明它是先插入了(1,1)然后又刪除了(1,1)

ON DUPLICATE KEY UPDATE

當插入的記錄遇到主鍵或者唯一鍵重復時,會執(zhí)行后面定義的UPDATE操作。

相當于先執(zhí)行Insert 操作,再根據(jù)主鍵或者唯一鍵執(zhí)行update操作。

創(chuàng)建測試表

DROP TABLE IF EXISTS Tupdate;
CREATE TABLE Tupdate
(ID INT NOT NULL PRIMARY KEY ,
NAME1 INT UNIQUE KEY
)default charset=utf8; 
INSERT INTO Tupdate() VALUES(1,1),(1,2) ON DUPLICATE KEY UPDATE NAME1=NAME1+1;
INSERT INTO Tupdate() VALUES(1,1),(1,2) ON DUPLICATE KEY UPDATE NAME1=VALUES(NAME1)+1; 

第一條語句相當于執(zhí)行:

INSERT INTO Tupdate() VALUES(1,1)
UPDATE Tupdate
SET NAME1=NAME1+1
WHERE ID=1; 

第二條語句相當于執(zhí)行:

INSERT INTO Tupdate() VALUES(1,1)
UPDATE Tupdate
SET NAME1=2+1
WHERE ID=1; 

在ON DUPLICATE KEY UPDATE后面使用VALUES指的就是插入的記錄的值,而不使用VALUES指的是表的自身值。

注意: ON DUPLICATE KEY UPDATE的后面執(zhí)行的UPDATE更新的記錄是WHERE重復的主鍵或者唯一鍵的ID,這點非常重要。

比如下面這種情況:

INSERT INTO Tupdate() VALUES(1,1),(2,1) ON DUPLICATE KEY UPDATE NAME1=VALUES(ID)+1; 

它是唯一鍵NAME1重復但是主鍵不重復,執(zhí)行的語句是這樣的:

INSERT INTO Tupdate() VALUES(1,1)
UPDATE Tupdate
SET NAME1=2+1
WHERE ID=1; 

不要認為會插入主鍵ID=2的記錄進去。

總結(jié)

上面的三種處理重復值的方法都支持標準的INSERT語法,包括INSERT INTO...VALUES, INSERT INTO ....SET ,INSERT INTO..... SELECT。

關(guān)于MySQL 處理插入過程中的主鍵唯一鍵重復值的解決方法小編就給大家介紹這么多,希望對大家有所幫助!

相關(guān)文章

  • MySQL的觸發(fā)器全解析(創(chuàng)建、查看觸發(fā)器)

    MySQL的觸發(fā)器全解析(創(chuàng)建、查看觸發(fā)器)

    MySQL觸發(fā)器是與表關(guān)聯(lián)的存儲程序,當INSERT/UPDATE/DELETE事件發(fā)生時自動執(zhí)行,用于維護數(shù)據(jù)一致性、日志記錄和校驗,優(yōu)點包括自動執(zhí)行,缺點是可讀性差且維護難,注意外鍵約束可能影響觸發(fā)器激活,下面跟隨小編一起學習mysql的觸發(fā)器知識,感興趣的朋友一起看看吧
    2025-08-08
  • mysql之innodb的鎖分類介紹

    mysql之innodb的鎖分類介紹

    本文將介紹mysql之innodb的鎖分類,需要了解更多的朋友可以參考下
    2012-11-11
  • MySQL中的交叉連接、自然連接和內(nèi)連接查詢詳解

    MySQL中的交叉連接、自然連接和內(nèi)連接查詢詳解

    這篇文章主要介紹了MySQL中的交叉連接、自然連接和內(nèi)連接查詢,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 如何利用SSH隧道連接遠程MySQL數(shù)據(jù)庫

    如何利用SSH隧道連接遠程MySQL數(shù)據(jù)庫

    為保護MySQL數(shù)據(jù)庫安全,可通過SSH隧道連接,服務端僅需開放SSH端口,加強密碼策略,客戶端可使用Navicat等工具,或通過編程(如SpringBoot)實現(xiàn)端口轉(zhuǎn)發(fā),推薦使用密鑰建立SSH隧道,以免密碼泄露風險,詳述了端口轉(zhuǎn)發(fā)的手動設置方法及自動化腳本配置
    2024-11-11
  • mysql清除log-bin日志的方法

    mysql清除log-bin日志的方法

    這篇文章主要介紹了mysql清除log-bin日志的方法,同時介紹了log-bin日志的作用,需要的朋友可以參考下
    2014-06-06
  • 使用MySQL的Binlog進行數(shù)據(jù)回滾的完整流程

    使用MySQL的Binlog進行數(shù)據(jù)回滾的完整流程

    本文描述了使用MySQL的binlog進行數(shù)據(jù)回滾的過程,從確認是否啟用Binlog日志到找到誤操作的記錄,再到編寫腳本解析記錄,最后執(zhí)行SQL語句實現(xiàn)回滾,需要的朋友可以參考下
    2025-12-12
  • 詳解mysql 組合查詢

    詳解mysql 組合查詢

    這篇文章主要介紹了詳解mysql 組合查詢的的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12
  • MySQL8.0 如何快速加列

    MySQL8.0 如何快速加列

    這篇文章主要介紹了MySQL8.0 如何快速加列,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL提取Json內(nèi)部字段轉(zhuǎn)儲為數(shù)字

    MySQL提取Json內(nèi)部字段轉(zhuǎn)儲為數(shù)字

    本文主要介紹了MySQL提取Json內(nèi)部字段轉(zhuǎn)儲為數(shù)字,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2021-07-07
  • 關(guān)于Mysql自增id的這些你可能還不知道

    關(guān)于Mysql自增id的這些你可能還不知道

    這篇文章主要給大家介紹了關(guān)于Mysql自增id的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Mysql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05

最新評論

海门市| 汉源县| 栾川县| 金坛市| 沿河| 介休市| 吴旗县| 韩城市| 始兴县| 龙岩市| 于田县| 纳雍县| 满洲里市| 河北省| 沛县| 富顺县| 定州市| 松溪县| 平昌县| 彭山县| 女性| 晋城| 宁都县| 双鸭山市| 黔南| 子洲县| 孟连| 怀柔区| 香港| 道孚县| 德阳市| 安丘市| 汨罗市| 调兵山市| 惠东县| 宁明县| 平原县| 古田县| 甘谷县| 奉新县| 财经|