Mysql自增主鍵id不是以此逐級遞增
一、介紹
在mysql數據庫添加數據時使用ON DUPLICATE KEY UPDATE進行數據更新時可能會出現id不是逐級以此遞增的,而是間斷遞增。如id從10下次添加可能就是15或者其他的數字,兩個數字之間間隔是ON DUPLICATE KEY UPDATE執行的次數,也就是說ON DUPLICATE KEY UPDATE在執行更新的時候把該表主鍵進行自增加一。
如圖所示
二、問題介紹
在對於同一個表進行新增和修改時我用了兩個mapper接口方法,也就是說使用了兩次ON DUPLICATE KEY UPDATE操作,這樣就會導致該表主鍵在你更新的時候就進行自增了。等到下次insert時就會出現不是逐級遞增了。
三、解決方法
將數據庫的insert和update進行拆分。