2

http://imgur.com/IZgvl

大家好,我一直在从 Wiley 的 MySQL 管理员圣经中学习 MySQL(完全没有 PHP 经验)。如果我提出的任何错误对您来说似乎是儿戏,我提前道歉,但我认为来这里帮助完善我的学习并没有什么坏处......

所以,在这里切入正题——我试图向自己展示符合 ACID 的事务的“原子性”和“一致性”方面。很基本。然而,当试图通过将资金从账户 ID 2 转移到不存在的“3”来强制出错时,交易拒绝恢复到之前的状态,现在可怜的哈德森在我承诺之后还差 5000 美元。谁能指出为什么会这样?谢谢!

期待成为这里的常客

-MyPreQL

4

2 回答 2

3

你仍然在你的事务上运行了一个 COMMIT。当您遇到错误时,您希望改为 ROLLBACK。

于 2012-04-16T21:37:17.683 回答
2

还。我知道这是微不足道的,但没有被提及,这仍然是一个常见的错误。确保您的表是引擎类型 innoDB 而不是 MyIsam。否则,所有这些提交和回滚看起来都很好,但由于 MyIsam 不支持事务并且不能符合 ACID ,因此无效:)

于 2012-04-17T04:11:54.513 回答