mysql如何使用事务

来源:这里教程网 时间:2026-02-28 20:09:11 作者:

在 MySQL 中使用事务,主要是为了确保一组数据库操作要么全部成功,要么全部失败,从而保证数据的一致性。事务的使用依赖于支持事务的存储引擎,最常用的是 InnoDB

开启事务

默认情况下,MySQL 是自动提交模式(autocommit = 1),即每条 SQL 语句执行后会立即提交。要使用事务,需要先关闭自动提交,手动控制事务边界。

START TRANSACTION;BEGIN;

执行 SQL 操作

在事务中执行你需要的增删改查操作。例如:

INSERT INTO users(name, balance) VALUES ('Alice', 1000); UPDATE users SET balance = balance - 200 WHERE name = 'Alice'; UPDATE accounts SET balance = balance + 200 WHERE name = 'Bob';

这些操作不会立即生效,除非你提交事务。

提交或回滚事务

根据业务逻辑判断是否完成所有操作:

提交事务(保存更改): COMMIT; —— 所有操作永久生效。 回滚事务(撤销更改): ROLLBACK; —— 撤销从 START TRANSACTION 以来的所有操作。

示例:转账操作

假设 Alice 给 Bob 转账 200 元,需保证两步更新都成功,否则都不执行:

START TRANSACTION;
UPDATE users SET balance = balance - 200 WHERE name = 'Alice';
UPDATE users SET balance = balance + 200 WHERE name = 'Bob';
-- 检查是否出错
-- 如果没问题
COMMIT;
-- 如果出错
-- ROLLBACK;

如果中间发生错误(如余额不足、连接中断等),执行 ROLLBACK 可恢复原始状态。

基本上就这些。只要用 InnoDB 引擎,合理使用 START TRANSACTION、COMMIT 和 ROLLBACK,就能有效管理事务。注意避免长时间不提交事务,以免锁资源影响性能。

相关推荐