mysql 使用ON DUPLICATE KEY UPDATE 時導致的自增主鍵id無限增大問題


mysql 版本:5.7

python版本:3.7

問題描述:mysql表A中數據有幾十條,設置了一個自增 1 的id作為主鍵,在程序運行一段時間后發現表中最后一條數據的id已經是幾百萬了

 表中所有數據如下:

 

 可以看到最大的一條id已經是四百多萬了,並且id是不連續的

操作表的sql語句為:

sql = "INSERT INTO  table A(xx, xx, xx, xx) VALUES('{xx}', '{xx}', '{xx}', '{xx}') ON DUPLICATE KEY UPDATE xx = '{xx}', xx = '{xx}';".format(
        xx=xx, xx=xx, xx=xx, xx=xx)

即在操作table A時,先判斷UNI的值是否存在,不存在則insert,存在則update

排除了一系列代碼邏輯和語法的問題后,發現MySQL在使用

ON DUPLICATE KEY UPDATE 

  時,不論是insert還是update都會導致自增id加1

當前id:

 

 

執行三條update語句后:

 id變為:

 

 下次如果向table A中insert時,id會從6535134開始


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM