答案: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';
提交或回滚事务
根据操作结果决定是否保存更改。
用 php + mysql 驱动的在线商城系统,我们的目标为中国的中小企业及个人提供最简洁,最安全,最高效的在线商城解决方案,使用了自建的会员积分折扣功能,不同的会员组有不同的折扣,让您的商店吸引更多的后续客户。 系统自动加分处理功能,自动处理会员等级,免去人工处理的工作量,让您的商店运作起来更方便省事 采用了自建的直接模板技术,免去了模板解析时间,提高了代码利用效率 独立开发的购物车系统,使用最
- 使用 ROLLBACK 回滚事务,撤销所有未提交的更改
示例:
COMMIT; -- 成功完成,保存更改-- 或者
ROLLBACK; -- 出现错误,撤销操作
实际应用场景
常见于银行转账、订单创建、库存扣减等需要保证一致性的场景。
例如转账流程:
- 开启事务- 检查付款方余额是否充足
- 执行资金划转
- 记录交易日志
- 提交事务(全部成功)或回滚(任一步失败)
注意:只有使用支持事务的存储引擎(如InnoDB)才能使用事务功能。MyISAM不支持事务。
基本上就这些,掌握 START TRANSACTION、COMMIT、ROLLBACK 这三个核心语句就能正确使用MySQL事务了。









