MySQL插入时事务回滚自增主键也将被占用

本文探讨了MySQL中开启事务进行数据插入时,即使事务回滚,自增主键仍然会递增的特性。通过示例展示了一个插入操作在回滚事务后,下一次插入时主键值跳过已使用过的数值,直接使用新的自增值。这揭示了MySQL自增主键的管理方式和事务处理对主键序列的影响。
摘要由CSDN通过智能技术生成

现有如下数据表:

mysql> SELECT * FROM test_demo;
+----+------+
| id | name |
+----+------+
|  1 | a    |
|  2 | b    |
+----+------+
2 rows in set

执行如下语句,开启事务,插入数据,回滚事务:

BEGIN;

INSERT INTO test_demo (NAME) VALUES ('c');

ROLLBACK;

再执行一次插入语句,不过此次正常提交事务,不回滚:

BEGIN;

INSERT INTO test_demo (NAME) VALUES ('c');

COMMIT;

再次执行查询语句:

mysql> SELECT * FROM test_demo;
+----+------+
| id | name |
+----+------+
|  1 | a    |
|  2 | b    |
|  4 | c    |
+----+------+
3 rows in set

发现一个很有意思的现象,数据正常插入了,但是主键并不是3,而变成了4。

结论:即使插入的时候事务发生了回滚,mysql的自增主键也会加一并占用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值