在mysql innodb事务中,我预计重复键错误会导致回滚。它不会这样做,相反,它只是抛出一个错误,然后继续执行下一个命令。一旦到达COMMIT命令,事务将被提交,sans重复键导致命令。这是预期的行为吗?如果是这样,如何设置它,以便在发生此类错误时回滚事务而不是提交事务?INSERT INTO test VALUES (5);COMMIT;实际结果:表test包含一条值为5的</
MySql InnoDB设置为自动提交关闭,并使用默认隔离级别可重复读取。根据ACID的“原子性”规则,事务要么“完成”,要么成功,但不是部分失败。
APP必须请求T1回滚,或者在收到t3错误后在t4提交之前重新尝试超时更新直到成功,从而实现原子性规则。T1的应用程序决定是否回滚,而在2) DB不仅检测死锁错误,而且还会影响到想要死锁的T2。理论上讲,DB也可以回滚T1,但是在2) DB可能只取消会导致死锁的