mysql のauto_incrementはroolbackしても戻らない
たった今しったのでメモ
mysql のauto_incrementはroolbackしても元に戻らない
このテーブルに対してinsertを行う
mysql> select * from test;
+----+-------+------+
| id | name | age |
+----+-------+------+
| 1 | lion | 15 |
| 2 | tiger | 25 |
| 3 | dog | 1 |
| 4 | cat | 12 |
+----+-------+------+
トランザクション を開始
mysql> begin;
mysql> insert into test (name, age) values('bear', 32);
mysql> roolback;
mysql> select * from test;
+----+-------+------+
| id | name | age |
+----+-------+------+
| 1 | lion | 15 |
| 2 | tiger | 25 |
| 3 | dog | 1 |
| 4 | cat | 12 |
+----+-------+------+
次はコミットしてみる
mysql> begin;
mysql> insert into test (name, age) values('bear', 32);
mysql> commit;
mysql> select * from test;
+----+-------+------+
| id | name | age |
+----+-------+------+
| 1 | lion | 15 |
| 2 | tiger | 25 |
| 3 | dog | 1 |
| 4 | cat | 12 |
| 6 | bear | 32 |
+----+-------+------+
insertは巻き戻されるけど、auto_incrementの値は巻き戻されずに増加してしまう、手動でまきもどしてもよいが、そこまでするメリットが
思い浮かばない
ちなみにこれはmysqlの仕様らしいです