答案:在MySQL中,事务需通过COMMIT提交以使更改永久生效。关闭autocommit后,使用START TRANSACTION、执行SQL语句,最后COMMIT提交,确保数据一致性。
在 MySQL 中,事务是一组 SQL 操作的集合,这些操作要么全部成功执行,要么全部不执行。要让事务中的修改永久生效,就需要使用 COMMIT 命令来提交事务。
MySQL 默认是自动提交模式(autocommit = 1),即每条 SQL 语句执行后会立即提交。如果需要手动控制事务,应先关闭自动提交,执行相关操作后再显式提交。
示例:
START TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT;
上述代码将资金从账户 1 转移到账户 2,COMMIT 执行后,两个更新操作才会真正写入数据库。
当 autocommit = 1 时,每个 SQL 语句都会被当作一个独立事务自动提交。可以通过以下命令查看和设置:
-- 查看当前自动提交状态 SELECT @@autocommit;-- 关闭自动提交 SET autocommit = 0;
-- 开启自动提交 SET autocommit = 1;
关闭自动提交后,必须使用 COMMIT 显式提交,否则更改不会持久化。
COMMIT 的主要作用是:
注意:
句(如 CREATE、ALTER)会隐式提交当前事务基本上就这些。只要记得开启事务后用 COMMIT 确认提交,就能确保数据按预期保存。操作关键数据时,建议结合 ROLLBACK 做好异常处理,避免错误提交。