AUTO_INCREMENTはINSERTするたびにカウントアップして発番してくれるが、ON DUPLICATE KEY UPDATEを使用してINSERTではなく既存行のUPDATEになった場合もカウントアップされてしまう。実際にINSERTしている行数はたいしたことがないのに、ON DUPLICATE KEY UPDATEされる回数が多いせいで、AUTO_INCREMENT値が大きくなってしまい、INTなどの比較的小さい型にしていた場合にAUTO_INCREMENTが上限値に達してしまう。 以下のテーブルをもとにINSERTされていないのにAUTO_INCREMENT値が増えていることを実際に確認する。 mysql> CREATE TABLE on_dup_autoinc (id INT AUTO_INCREMENT PRIMARY KEY, ukey CHAR(1) UNIQUE K