MySQL默认开启自动提交(autocommit=1),每条DML语句自动提交且不可回滚;2. 可通过SELECT @@autocommit查看状态,SET autocommit=1或ON开启;3. 自动提交下每条语句独立事务,不支持回滚,适用于简单操作;4. 多语句需原子性时应关闭autocommit,使用START TRANSACTION、COMMIT、ROLLBACK保证一致性;5. 操作完成后建议恢复autocommit=1。

MySQL 中的自动提交模式(autocommit)控制着事务是否在每条语句执行后自动提交。默认情况下,MySQL 是开启自动提交的,这意味着每条 INSERT、UPDATE、DELETE 等修改数据的语句都会立即生效并无法回滚。
查看当前自动提交状态
可以通过以下命令查看当前 autocommit 的设置:
SELECT @@autocommit;
返回值为 1 表示开启,0 表示关闭。
启用自动提交模式
如果你之前关闭了自动提交,可以通过以下命令重新开启:
SET autocommit = 1;
或者使用:
SET autocommit = ON;
开启后,每条 SQL 语句都会在执行完成后立即提交,不需要手动调用 COMMIT。
用 php + mysql 驱动的在线商城系统,我们的目标为中国的中小企业及个人提供最简洁,最安全,最高效的在线商城解决方案,使用了自建的会员积分折扣功能,不同的会员组有不同的折扣,让您的商店吸引更多的后续客户。 系统自动加分处理功能,自动处理会员等级,免去人工处理的工作量,让您的商店运作起来更方便省事 采用了自建的直接模板技术,免去了模板解析时间,提高了代码利用效率 独立开发的购物车系统,使用最
自动提交模式下的行为特点
当 autocommit = 1 时:
- 每条单独的 DML 语句(如 INSERT、UPDATE、DELETE)会自动作为一个事务提交。
- 不能通过 ROLLBACK 回滚最近的操作。
- 适合简单的操作场景,比如日常的数据查询和单条记录插入。
- 对于需要保证多条语句原子性的业务逻辑,应临时关闭 autocommit。
何时应该关闭自动提交
在执行多个相关操作且要求全部成功或全部失败时,应关闭自动提交:
SET autocommit = 0; START TRANSACTION; -- 执行多条 SQL 语句 INSERT INTO accounts VALUES (...); UPDATE balance SET amount = ...; -- 全部成功再提交 COMMIT; -- 出错可回滚 ROLLBACK;
完成操作后建议恢复自动提交:
SET autocommit = 1;
基本上就这些。正常使用 MySQL 时无需特别设置,保持默认自动提交即可。只有在处理涉及多个步骤的事务时,才需要临时关闭它以确保数据一致性。









