在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事务了。
以上就是mysql中事物怎么使用的详细内容,更多请关注php中文网其它相关文章!


