在 MySQL 中,COMMIT 用于提交当前事务,使自事务开始以来所做的所有数据更改永久生效。要正确使用 COMMIT,需要确保表存储引擎支持事务(如 InnoDB),并手动控制事务流程。
启用事务模式
MySQL 默认可能处于自动提交模式(autocommit = 1),这意味着每条语句都会立即被提交。要手动控制事务,必须先关闭自动提交:
SET autocommit = 0; -- 或者使用 START TRANSACTION;
推荐使用 START TRANSACTION 显式开启一个事务块。
执行数据修改操作
在事务中可以执行 INSERT、UPDATE、DELETE 等操作,这些更改仅在当前会话中可见,不会影响其他会话,直到提交。
START TRANSACTION; <p>UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2;</p>
使用 COMMIT 提交更改
确认操作无误后,使用 COMMIT 将更改永久保存到数据库:
COMMIT;
执行 COMMIT 后,事务结束,所有更改生效,其他会话可看到结果。
异常处理与回滚
如果过程中发现错误或想放弃更改,应使用 ROLLBACK 回滚事务:
ROLLBACK;
例如,在转账过程中若发现余额不足,可回滚以保持数据一致性。
基本上就这些。只要记得开启事务、执行操作、确认无误后 COMMIT,就能安全地管理数据变更。注意 MyISAM 引擎不支持事务,务必使用 InnoDB。
