日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

來源:程序員人生   發布時間:2014-03-22 04:54:48 閱讀次數:4621次
當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處理效率高
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91一区二区 | 免费日韩电影 | 韩国色综合| 色网在线免费观看 | 成人av一区 | 自拍第一页 | 久久黄色 | 国产一区久久久 | 欧美最猛黑人xxxx黑人猛叫黄 | 国产成人免费在线 | 精品国产31久久久久久 | 国产激情在线观看 | 亚洲高清福利 | 亚洲视频在线免费 | 免费av在线 | 国产精成人 | 91久久精品一区二区二区 | 天天综合久久 | 91亚洲国产视频 | 亚洲欧美日韩另类精品一区二区三区 | 亚洲欧洲在线视频 | 99精品视频在线观看免费 | 欧美日韩中文字幕一区二区 | 成人在线观看网站 | 亚洲综合一区二区 | 99re视频 | 中文字幕亚洲欧美日韩在线不卡 | 精品视频免费在线 | 久草成人在线 | 黄色裸体网站 | 伊人天天| 国产成人精品一区二 | 国产精品最新 | 久久久久亚洲av成人毛片韩 | 日韩欧美精品在线观看 | 中文字幕免费在线视频 | 国产欧美日韩一区二区三区 | 爱爱免费视频网站 | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲第一福利视频 | 懂色av影视一区二区三区 |