多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > MySql > mysql中primary key重復時的處理辦法

mysql中primary key重復時的處理辦法

來源:程序員人生   發布時間:2014-03-22 04:54:48 閱讀次數:4612次
當insert進數據表, 發生唯一key(unique key與primary key)重復時, 會發生duplicate key錯誤.

這種情況有三種處理方法, 以下面的數據結構為例子

mysql> use test;

mysql> create table `user` (`userid` int(11) DEFAULT NULL, `username` varchar(255) NOT NULL DEFAULT '');

給加上userid列primary key

mysql> alter table `user` add primary key `userid` (`userid`);

插入數據

mysql> insert into `user` values (1, 'eric'), (2, 'jesus');

現在我要插入或者編輯userid為1的記錄, 但我不知道里面是否已經存在該記錄.

1, 先刪除再插入之

mysql> delete from user where userid = 1;

mysql> insert into user values (1, 'xxxxx') ;

2, 使用replace into

mysql> replace into user values (1, 'newvalue');

這種情況下邏輯是這樣的, mysql先判斷記錄是否存在, 若存在則先刪除之, 再自行insert. 所以你能看到這條語句執行后affected rows是2條(當然前提是你的數據表里userid為1的數據只有1條)

3, 使用insert into ... on duplicate key update

mysql> insert into user1 values (1, 'newvalueagain') on duplicate key update user1.username = VALUES(username);

這條語句的affected rows也是2.

當然還有另外的處理方式就是直接用php來實現,

先select出來, 發現沒結果則insert, 否則update.

還可以先update, 發現affected rows是0, 則insert.

但明顯這倆種辦法都沒有把工作直接交給mysql處理效率高
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: yellow中文字幕视频在线 | 国产国产精品人在线观看 | 欧美精品久久久久久久影视 | 亚洲 欧美 都市 自拍 在线 | 日本一区二区网站 | 亚洲精品国产经典一区二区 | 毛片最新网址 | 国产毛片片精品天天看视频 | 波多洁野衣一二区三区| 性一交一乱一伦 | 国产成人免费a在线资源 | 欧美三级手机在线 | jizz在线观看免费视频 | 香蕉狠狠再啪线视频 | 另类国产 | 国产一区二区不卡免费观在线 | 午夜免费播放观看在线视频 | 国产中文久久精品 | 欧美另类性视频在线看 | 无码免费一区二区三区免费播放 | 99热自拍| 亚洲精品乱无伦码 | 精品伊人 | 国产精品成久久久久三级 | 久久七国产精品 | 亚洲最大的视频网站 | 亚洲综合国产一区在线 | 最近更新中文字幕在线 | 欧美一级黄视频 | 久久精品一区二区三区不卡牛牛 | 日韩中文字幕一区二区不卡 | 欧美多人| 国产精品卡哇伊小可爱在线观看 | 精品一区二区三区免费 | 另类 欧美 视频二区 | 日韩最新视频一区二区三 | 一级毛片ab片高清毛片 | 激情在线观看视频 | 午夜欧美在线 | 亚洲天堂中文字幕 | avtt香蕉|