当使用 MySQL START TRANSACTION 并且 MySQL 决定回滚时 - 如果表具有 AUTO_INCREMENT 列 - 在回滚期间该列是否会减少?
还是应该?
我遇到了一些事务数据被正确回滚的问题——但看起来该表是自动递增的,而不是在回滚中递减。
# BOTH TABLES START OUT EMPTY // TABLE1 ID is **auto_increment**
START TRANSACTION;
INSERT INTO `TABLE1` (`ID` ,`NAME`) VALUES (NULL , 'Ted'); # MySQL TABLE1 **ID** is Auto incremented to 1
INSERT INTO `TABLE2` (`ID` ,`WRONGVALUE`) VALUES (NULL , 'some value'); # error. This TRANSACTION will not succeed
COMMIT; # Because of the error - this TRANSACTION is now rolled back and Ted is NOT added
因为 MySQL 将自动增加第一个表上的 ID - 无论事务是成功还是失败 - 这是自己减少表的标准做法吗?