贝利信息

如何提交事务_mysql commit用法

日期:2026-01-02 00:00 / 作者:P粉602998670
COMMIT用于提交显式开启的事务,使其中的DML操作永久生效;仅在autocommit=0或BEGIN/START TRANSACTION后需手动执行,否则无效或报错。

在 MySQL 中,COMMIT 用于提交当前事务,使事务中所有数据变更(如 INSERT、UPDATE、DELETE)永久生效。它必须配合事务控制语句使用,不能单独执行。

什么时候需要 COMMIT

MySQL 默认开启自动提交(autocommit=1),即每条 SQL 语句都会立即生效。只有当你显式开启事务(用 BEGINSTART TRANSACTION)后,才需要手动 COMMIT 来确认修改:

基本 COMMIT 用法

标准流程是:BEGIN → 执行 SQL → COMMIT(或 ROLLBACK)

BEGIN;
INSERT INTO users(name, age) VALUES('张三', 25);
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
COMMIT;

执行 COMMIT 后,上述两条语句的更改才会写入磁盘并被其他会话可见。

注意事务边界和常见误区

以下情况会导致 COMMIT 失效或行为异常:

如何确认 autocommit 状态

运行以下命令查看当前会话是否自动提交:

SELECT @@autocommit;

返回 1 表示开启(默认),返回 0 表示关闭。可临时关闭:

SET autocommit = 0;

之后每条 DML 都需显式 COMMIT,直到再次设为 1 或断开连接。