有了MySQL,怎么做BEGIN; ROLLBACK;和COMMIT;与自动提交有关?

时间:2012-03-10 03:40:48

标签: mysql transactions

看起来您只需使用BEGIN即可实现所有需要的交易; ROLLBACK和COMMIT;是否存在某些需要使用自动提交的方案?打电话给BEGIN;将autocommit设置为false?调用COMMIT;将autocommit设置为true?

1 个答案:

答案 0 :(得分:1)

可以为每个会话或全局设置自动提交。没有需要自动提交的方案(并非所有RDMS都支持自动提交模式)。在我看来,默认情况下提供自动提交和真实的原因是因为MyISAM引擎根本不支持事务,所以为了减轻为MyISAM编写的移植应用程序,它们模仿了相同的行为。

  

调用BEGIN;将autocommit设置为false?调用COMMIT;将autocommit设置为true?

来自mysql documentation

  

要为单个系列语句禁用自动提交模式,请使用START TRANSACTION语句:...
  使用START TRANSACTION时,自动提交将保持禁用状态,直到您使用COMMIT或ROLLBACK结束事务。然后,自动提交模式将恢复为先前的状态。