亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > 文庫 > 正文

sql插入數據提示已經存在,則執行update更新

2024-09-07 22:12:54
字體:
來源:轉載
供稿:網友
  這個例子其實是非常的簡單了就是要實現sql插入數據時,如果已經存在,則執行update更新了,這樣對于sql與程序來講是非常的簡潔的,下面就和小編一起來深入的分析一下吧.
 
  在很多項目中,我們需要對數據進行不斷的調用和更新,如果有新的數據過來,還要把它加入到數據庫中。其中非常重要的一種情況就是,我們不知道傳過來的數據是不是原本數據庫中就已經有了的記錄,所以我們常常需要先通過抓取數據,判斷是否存在,如果存在執行update,如果不存在執行insert,這樣就要進行兩次數據庫操作,第一次是查詢,第二次是更新或插入,有沒有一種方法可以只需要執行一次操作即可呢?答案是有的。
 
  INSERT ... ON DUPLICATE KEY UPDATE 方法可以幫助我們非常好的解決這一問題。讓我們來看一個例子:
 
  INSERT INTO table (a,b,c) VALUES (1,2,3)  ON DUPLICATE KEY UPDATE b=b-1,c=c+1;
 
  這一個語句就可以實現,在插入(1,2,3)這條記錄的時候,檢查是否存在a=1,如果有a=1的記錄,那么更新a=1這條記錄,相當于執行了一次下面這個語句:
 
  UPDATE table SET b=b-1,c=c+1 WHERE a=1;
 
  如果數據庫中不存在a=1這條記錄,那么就插入新的記錄.
 
  使用INSERT ... ON DUPLICATE KEY UPDATE的前提是,a字段被設置為“唯一鍵”索引,否則該方法是無效的.

  如果一個表中包含了一個auto_increment的字段,每次insert數據后,可以通過last_insert_id()方法返回最后自動生成的值,如果通過INSERT ... ON DUPLICATE KEY UPDATE語句修改了一條數據,那么再通過last_insert_id()方法獲取的值將不正確,實際測試中是多了一個數,比如向表中增加了3條數據,那么通過last_insert_id()方法得到的值是3,但是通過該語句修改了一條數據后,通過last_insert_id()方法得到的值是4。如果想解決該問題,可以通過如下語句:
 
  INSERT INTO table (a,b,c) VALUES (1,2,3)  
 
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;  
 
  重點是這句id=LAST_INSERT_ID(id),還有一種方法是使用ignore,我們來看一個例子:
 
  INSERT ignore INTO a(id, type)  VALUES  ( 11, 22)
 
  這個語句中使用了ignore,意思是:如果數據庫中存在一條記錄id=11,那么就不執行insert操作(忽略),只有上述條件不滿足時才執行插入操作,ignore方法也要求這里的id為唯一鍵(主鍵默認就是是唯一鍵,因此id可以是主鍵).
 
  另外,還有一種方法是replace into,它的使用方法和insert into一樣,但是和上面的ignore效果不同,如果數據庫中已經存在id=11,那么強制替換id=11這條記錄的type為22.
 
  看個例子:下面通過代碼說明之間的區別,如下:
 
  create table testtb(
  id int not null primary key,
  name varchar(50),
  age int
  );
  insert into testtb(id,name,age)values(1,"bb",13);
  select * from testtb;
  insert ignore into testtb(id,name,age)values(1,"aa",13);
  select * from testtb;//仍是1,“bb”,13,因為id是主鍵,出現主鍵重復但使用了ignore則錯誤被忽略
  replace into testtb(id,name,age)values(1,"aa",12);
  select * from testtb; //數據變為1,"aa",12
  總結一下:如果要實現插入數據時檢查是否已經存在某個唯一鍵的數據,如果存在,則替換該記錄的其他字段,我們可以使用三種方法來實現插入數據時判斷是否存在對應鍵的記錄,分別是INSERT ... ON DUPLICATE KEY UPDATE、insert gnore into和replace into,其中INSERT ... ON DUPLICATE KEY UPDATE和replace into可以實現如果已經存在對應鍵的記錄時,替換該記錄的其他字段.
 
 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品99久久久久久人| 国产精品久久久久久久久免费看| 福利一区视频在线观看| 国产美女精品免费电影| 欧美日韩一区二区免费视频| 91精品啪aⅴ在线观看国产| 国产日韩欧美中文| 日韩av电影院| 亚洲护士老师的毛茸茸最新章节| 欧美天堂在线观看| 欧美xxxx做受欧美| 久久99国产精品久久久久久久久| 色噜噜久久综合伊人一本| 久热精品视频在线免费观看| 国产精品自在线| 国产日韩在线播放| 在线亚洲国产精品网| 992tv成人免费视频| 亚洲视频在线免费观看| 成人在线中文字幕| 国外成人在线视频| 欧美尺度大的性做爰视频| 久久人人97超碰精品888| 欧美人与性动交a欧美精品| 欧美—级高清免费播放| 成人在线国产精品| 国产在线观看精品| 国产成人精品综合久久久| 91av在线看| 亚洲男人天堂2024| 亚洲国产精品va在线观看黑人| 欧美成人中文字幕在线| 亚洲第一精品电影| 国产日本欧美视频| 精品在线欧美视频| 久久亚洲欧美日韩精品专区| 在线观看成人黄色| 精品欧美一区二区三区| 亚洲午夜女主播在线直播| 色爱av美腿丝袜综合粉嫩av| 国产精品爽爽ⅴa在线观看| 国产一区二区三区视频免费| 欧美极品欧美精品欧美视频| 欧美激情视频给我| 91亚洲精品在线观看| 最近中文字幕日韩精品| 亚洲第一男人天堂| 欧美黑人xxxx| 欧美老女人在线视频| 欧美性xxxxx极品娇小| 亚洲欧美日韩国产成人| 国产欧美一区二区三区视频| 久久久久久久久久亚洲| 久久在线观看视频| 色一情一乱一区二区| 国产精品吹潮在线观看| 亚洲影影院av| 成人午夜两性视频| 亚洲国产日韩一区| 亚洲影视中文字幕| 亚洲视频在线免费观看| 国产亚洲成av人片在线观看桃| 国产91久久婷婷一区二区| 97超碰国产精品女人人人爽| 国产成人精品免费久久久久| 中文字幕欧美日韩精品| 欧美一级bbbbb性bbbb喷潮片| 国产日韩在线视频| 国产999在线| 欧美成人久久久| 国产精品一二区| 在线播放日韩专区| 91亚洲精品久久久久久久久久久久| 国产精品久久久久久久久久久新郎| 欧美老女人性视频| 在线播放国产精品| 亚洲精品成人网| 精品人伦一区二区三区蜜桃免费| 欧美精品午夜视频| 国内精久久久久久久久久人| 91免费视频网站| 97婷婷涩涩精品一区| 伊人伊成久久人综合网小说| 亚洲欧美资源在线| 国产精品69久久| 欧美国产日韩在线| 秋霞午夜一区二区| 国产精品网站大全| 国产手机视频精品| 欧美最猛性xxxxx亚洲精品| 成人在线观看视频网站| 亚洲视频在线免费看| 亚洲欧洲av一区二区| 欧美日韩综合视频网址| 日韩欧美精品中文字幕| 国产一区二区丝袜| 国产精品狼人色视频一区| 久久av资源网站| 亚洲美女免费精品视频在线观看| 国产精品一区二区三区在线播放| 国语自产精品视频在线看抢先版图片| 色青青草原桃花久久综合| 一区二区三区亚洲| 免费成人高清视频| 亚洲男人第一av网站| 国产精品国产自产拍高清av水多| 国产精品夜间视频香蕉| 亚洲欧洲xxxx| 国产一区二区久久精品| 色综合久久88| 日韩专区在线观看| 久久久久久久久亚洲| 美女福利精品视频| 日韩在线视频二区| 一区二区三区四区视频| 国产亚洲精品va在线观看| 欧美性极品xxxx做受| 日韩小视频网址| 国产91网红主播在线观看| 欧美成人手机在线| 国产精品爽爽爽爽爽爽在线观看| 91精品久久久久久综合乱菊| 亚洲最大av网站| 亚洲国产女人aaa毛片在线| 日韩在线中文字幕| 国产日韩精品视频| 91高潮精品免费porn| 久久久久北条麻妃免费看| 亚洲人成电影网| 欧美激情视频播放| 久久久精品免费视频| 久久天天躁狠狠躁老女人| 日韩av在线精品| 91经典在线视频| 日韩在线视频线视频免费网站| 欧美精品免费播放| 亚洲一级黄色av| 国产精品高潮呻吟久久av野狼| 91精品国产高清自在线看超| 国产一区二区三区免费视频| 久久精品久久久久电影| 亚洲少妇中文在线| 国产精品久久久久久久久免费| 国产精品精品久久久| 97婷婷大伊香蕉精品视频| 亚洲国产三级网| 中文字幕亚洲欧美在线| 91在线免费看网站| xxx一区二区| 爽爽爽爽爽爽爽成人免费观看| 美女久久久久久久久久久| 欧美精品中文字幕一区| 在线观看国产精品日韩av| 亚洲男人第一网站| 亚洲淫片在线视频| 国产精品免费电影| 亚洲自拍偷拍在线| 成人午夜激情免费视频| 日韩在线中文视频| 一区二区三区四区在线观看视频| 91精品国产成人www| 国产精品扒开腿做爽爽爽男男| 国产亚洲美女精品久久久| 92看片淫黄大片欧美看国产片|