問題 InnoDBエンジンのあるテーブルに、insert into T select * from XXX 系のSQLを流すと、AUTO_INCREMENTの連番が余分に消費されて、次に挿入するレコードにはかなり飛んだ番号が付きました。 1,2,3,4,5,6,7,8,9,10 の10行が入った後で、次の行を入れると連番が16になっているなど。 なぜでしょう。 答え より単純な再現手順。 insertは2行のはずだが、連番が3進む。1つ余分に進む。 /* AUTO_INCREMENTのカラムを持つテーブルを作成 */ create table T ( id int primary key auto_increment, code varchar(10) not null ) engine=InnoDB; /* insert select をする. code 'a' と 'b' の行を追加す
![【MySQL】InnoDBのテーブルでAUTO_INCREMENTの連番が飛ぶ at softelメモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/9a06e55dbede7278069dc08aa9fdf5bdabd789e4/height=288;version=1;width=512/https%3A%2F%2Fwww.softel.co.jp%2Fblogs%2Ftech%2Fwordpress%2Fwp-content%2Fuploads%2F2013%2F01%2Fmysql.jpg)