回答編集履歴
1
追記
answer
CHANGED
@@ -1,2 +1,17 @@
|
|
1
1
|
AUTO_INCREMENTが最大値+1なので、最後の番号を削除すれば、当然最大値は変わります。
|
2
|
-
最大値の番号でないものを削除しても最大値は変化しません。
|
2
|
+
最大値の番号でないものを削除しても最大値は変化しません。
|
3
|
+
|
4
|
+
再起動が絡みますが、MYSQLの仕様です。
|
5
|
+
[14.6.5.1 従来の InnoDB の自動インクリメントロック](https://dev.mysql.com/doc/refman/5.6/ja/innodb-auto-increment-traditional.html)
|
6
|
+
|
7
|
+
[MySQL サーバーを再起動するとAUTO_INCREMENT の値が戻る](http://sairoutine.hatenablog.com/entry/2016/04/24/013521)
|
8
|
+
> AUTO_INCREMENTした値が一意であることを見越して、
|
9
|
+
> 他のテーブルの外部キーにしてたりすると、整合性が取れなくなってしまう。
|
10
|
+
>
|
11
|
+
> 対策としては
|
12
|
+
> ・外部キー制約入れる
|
13
|
+
> ・AUTO_INCREMENTに頼らず、別に採番テーブルを用意する
|
14
|
+
> ・論理削除してレコードを delete しない(!)
|
15
|
+
|
16
|
+
8.0だと解消しているようです。
|
17
|
+
[MySQL 8.0でInnoDBのAUTO_INCREMENT問題解消を確認してみる](https://qiita.com/hmatsu47/items/4429171c1bbaba564774)
|