MySQL事务是一组一起执行或都不执行的SQL语句。事务的主要目的是为了保证数据的一致性和完整性。MySQL默认开启了自动提交模式,即每执行一条SQL语句,就会立即提交事务。可以通过START TRANSACTION
开始一个事务,COMMIT
提交事务,ROLLBACK
回滚事务。
MySQL支持两种事务隔离级别:
事务常用于银行转账、订单处理等需要保证数据一致性的场景。
SHOW ENGINE INNODB STATUS
查看死锁信息。假设有一个转账操作,从一个账户转钱到另一个账户:
START TRANSACTION;
-- 减少转出账户的余额
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
-- 增加转入账户的余额
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- 提交事务
COMMIT;
如果提交不成功,可以回滚事务:
START TRANSACTION;
-- 减少转出账户的余额
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
-- 增加转入账户的余额
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- 提交事务
-- COMMIT;
-- 回滚事务
ROLLBACK;
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云