答案:MySQL事务通过START TRANSACTION、COMMIT和ROLLBACK确保数据一致性,需使用InnoDB引擎。开启事务后执行SQL操作,成功则COMMIT提交,失败则ROLLBACK回滚,常用于转账等场景。
在MySQL中,事务用于确保一
组数据库操作要么全部成功,要么全部失败,保证数据的一致性。使用事务的关键是将多个SQL语句作为一个逻辑单元来执行。
开启事务
在MySQL中,默认情况下每条SQL语句都是自动提交的(autocommit = 1)。要使用事务,需要先关闭自动提交模式,或者显式地开始一个事务。
- 使用 START TRANSACTION 显式开始一个事务 - 或者设置 SET autocommit = 0 关闭自动提交示例:
START TRANSACTION;-- 后续的SQL语句将处于同一个事务中
执行SQL操作
在事务开启后,可以执行多条SQL语句,比如INSERT、UPDATE、DELETE等。这些操作不会立即生效(其他会话看不到),直到你提交事务。
- 执行转账操作:从A账户减钱,向B账户加钱- 检查余额是否足够
- 更新相关记录
示例:
UPDATE accounts SET balance = balance - 100 WHERE user = 'Alice';UPDATE accounts SET balance = balance + 100 WHERE user = 'Bob';
提交或回滚事务
根据操作结果决定是否保存更改。
- 使用 COMMIT 提交事务,使所有更改永久生效- 使用 ROLLBACK 回滚事务,撤销所有未提交的更改
示例:
COMMIT; -- 成功完成,保存更改-- 或者
ROLLBACK; -- 出现错误,撤销操作
实际应用场景
常见于银行转账、订单创建、库存扣减等需要保证一致性的场景。
例如转账流程:
- 开启事务- 检查付款方余额是否充足
- 执行资金划转
- 记录交易日志
- 提交事务(全部成功)或回滚(任一步失败)
注意:只有使用支持事务的存储引擎(如InnoDB)才能使用事务功能。MyISAM不支持事务。
基本上就这些,掌握 START TRANSACTION、COMMIT、ROLLBACK 这三个核心语句就能正确使用MySQL事务了。








