TL;DR AUTO_INCREMENT属性のあるカラムで払い出す値は負値を取れないことは有名だけれど でも MySQL :: MySQL 5.6 リファレンスマニュアル :: 3.6.9 AUTO_INCREMENT の使用 には書いてなかったな、どこに書いてあるんだっけな。。 実はauto_incrementの現在地が符号なしBIGINTの最大値 - 1になるとBIGINTの最大値を払い出すことができない とある事情があってInnoDBのAUTO_INCREMENT関連のコードを読んでいた時に、innobase_next_autoincの中でこんなコードになっていることに気が付いた。 2497 if (block >= max_value 2498 || offset > max_value 2499 || current >= max_value 2500 || max_value