Table of Contents

    在默认的情况下, MySQL 从自动提交 (autocommit) 模式运行, 这种模式会在每条语句执行完毕后把它作出的修改立刻提交给数据库并使之永久化. 事实上, 这相当于把每一条语句都隐含地当做一个事务来执行.

    如果你想明确地执行事务, 需要禁用自动提交模式并告诉 MySQL 你想让它在何时提交或回滚有关的修改.

    禁用自动提交模式有两种方式:

    一种是直接设置 autocommitfalse, 此时, 在提交或回滚前的所有 sql 语句都会当成同一个事务来处理;

    另一种常用的办法是发出一条 START TRANSACTION (或 BEGIN) 语句临时挂起自动提交模式, 在事务被提交或回滚之后, 该模式将恢复到开始本次事务的 START TRANSACTION 语句被执行之前的状态. (如果自动提交模式原来是激活的, 结束事务将回到自动提交模式; 如果它原来是禁用的, 结束当前事务将自动开始下一个事务.)