在 MySQL 中,提交事务是通过 COMMIT 语句来完成的。当你开启一个事务后,所做的修改不会立即生效,只有在执行 COMMIT 后才会永久保存到数据库中。
如何开启并提交事务
MySQL 默认是自动提交模式(autocommit = 1),也就是说每条 SQL 语句都会被自动当作一个事务提交。要手动控制事务,需要先关闭自动提交:
SET autocommit = 0;然后可以显式地开始一个事务:
BEGIN;或者使用:
START TRANSACTION;接着执行你的 SQL 操作,比如:
UPDATE accounts SET balance = balance - 100 WHERE id = 1;UPDATE accounts SET balance = balance + 100 WHERE id = 2;确认操作无误后,提交事务:
COMMIT;事务回滚(出错时)
如果在事务过程中发现错误,不想保存更改,可以使用:
ROLLBACK;这会撤销从 BEGIN 之后所有的操作,恢复到事务开始前的状态。
自动提交模式说明
如果 autocommit 是开启状态(默认),每个 SQL 语句都会独立提交,无法回滚。因此在需要保证多个操作原子性时(如转账),必须手动关闭 autocommit 并使用 BEGIN 和 COMMIT 配合。
基本上就这些。关键点是:用 BEGIN 开启,COMMIT 提交,ROLLBACK 回滚,同时注意 autocommit 设置。不复杂但容易忽略。
