原因很可怕,所以不要問! 最近開了一個有 auto_increment 欄位的資料表, 並且將該表中幾個欄位設為唯一值索引, 然後就下了以下的SQL塞資料: INSERT INTO EXAMPLE (a, b, c) VALUES ('1', '2', '3') ON DUPLICATE KEY UPDATE d = '4' 結果發現 auto_increment 欄位中的值越變越大, 不過一千多筆的資料,流水號卻取到七萬多。 看了 MySQL 的說明 , 才發現下 INSERT ... ON DUPLICATE KEY 時碰到 auto_increment 欄位時, 流水號也會持續增加(只有 Update 時才不會增加), 所以下一次真的有新增資料時,流水號會跳得老遠去...... 當下只好照 StackOverflow 上的一篇回覆 修改程式碼解決這個不算大卻有點微妙的問題......