使用insert on duplicate key update插入重復數(shù)據(jù)的時候,只更新了重復唯一索引的數(shù)據(jù),返回影響行數(shù)為2行。查資料都是說操作會執(zhí)行兩部操作:1.insert表嘗試插入【嘗試插入,存在重復數(shù)據(jù),此時應無表數(shù)據(jù)變更】2.update更新唯一索引的值【變更行數(shù)1】所以比較困惑另外一處變更是發(fā)生在哪里,第一次提問,求大佬解惑相關(guān)代碼// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)表結(jié)構(gòu)CREATE TABLE test1
( id INT AUTO_INCREMENT
PRIMARY KEY, name VARCHAR(20) NOT NULL,
stu_id INT NOT NULL) ENGINE = InnoDB;id唯一insert into test1 VALUES ('4','小黑','2') on DUPLICATE KEY UPDATE stu_id=stu_id+1;commit;
1 回答

九州編程
TA貢獻1785條經(jīng)驗 獲得超4個贊
insert on duplicate key update是不會去做刪除數(shù)據(jù)操作的,replace語句才會
影響行數(shù)為2的原因,可以參考這篇文章mysql自增id超大問題查詢
添加回答
舉報
0/150
提交
取消