https://dev.mysql.com/doc/refman/8.0/ja/alter-table.html
現在の自動インクリメント値をリセットするには:
ALTER TABLE t1 AUTO_INCREMENT = 13;
このカウンタを、現在使用されている値以下の値にリセットすることはできません。
設定値が現在 AUTO_INCREMENT カラム内にある最大値以下である場合、この値は現在の AUTO_INCREMENT カラムの最大値に 1 を加えた値にリセットされます。
-- テスト用テーブル作成 create table inc_test( record_id int unsigned not null AUTO_INCREMENT, text varchar(32) not null, PRIMARY KEY (record_id) ); -- 最初は、連番1から振られる insert into inc_test(record_id, text) values (null, 'aaa'); insert into inc_test(record_id, text) values (null, 'bbb'); insert into inc_test(record_id, text) values (null, 'ccc'); select * from inc_test; -- 1, 2, 3 のレコードIDが振られる -- 大きいレコードIDのデータを入れると、その次の番号から振られる insert into inc_test(record_id, text) values (1000, 'ddd'); insert into inc_test(record_id, text) values (null, 'eee'); select * from inc_test; -- 1, 2, 3 に加えて、1000, 1001 のレコードIDが振られる -- 大きい値を削除しても auto_increment はリセットされない delete from inc_test where record_id >= 1000; -- 1001, 1002 削除 insert into inc_test(record_id, text) values (null, 'fff'); select * from inc_test; -- 1, 2, 3 に加えて、1002 のレコードIDが振られる -- alter table で auto_increment を設定しても、テーブル内にそれより大きい値があると無意味 alter table inc_test AUTO_INCREMENT = 10; insert into inc_test(record_id, text) values (null, 'ggg'); select * from inc_test; -- 1, 2, 3, 1002 に加えて、1003 のレコードIDが振られる -- 大きい値を削除してから alter table で auto_increment を設定すると、連番がその値から振られる delete from inc_test where record_id >= 1000; -- 1002, 1003 削除 alter table inc_test AUTO_INCREMENT = 10; insert into inc_test(record_id, text) values (null, 'hhh'); select * from inc_test; -- 1, 2, 3 に加えて、10 のレコードIDが振られる -- テスト用テーブル削除 drop table inc_test;