我有 2 个存储过程 A、B,它们都在一个事务块中。问题是 A 调用 B,因此存在递归/嵌套事务。我不确定有没有问题?当我打电话给 A 时会发生什么?
引用自《MySQL 存储过程编程》:
START TRANSACTION
表示新交易的开始。如果现有事务已经在进行中,START TRANSACTION
则将发出隐含的COMMIT
. 当您发出START TRANSACTION
时,自动提交属性(将在下一节中描述)有效且隐式地设置为 0,直到事务结束。START TRANSACTION
我们建议您在任何语句之前显式提交或回滚现有事务,因为COMMIT
对于阅读或维护您的代码的人来说,隐式可能并不明显。