概念

如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功要么同时失败。

操作

  • 开始事务:START TRANSACTION
  • 回滚:ROLLBACK
  • 提交:COMMIT

事务提交的两种方式

  • 自动提交

    • MySQL默认自动提交
    • 一条DML(增删改)语句会自动提交一次事务
  • 手动提交

    • 先开启事务再提交
  • 修改事务的默认提交方式

    • 查看默认提交方式:SELECT @@aucocommit;

      • 1代表自动提交,0代表手动提交
    • 修改默认提交方式:SET @@autocommit = 0;

-- 创建表
CREATE TABLE account(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(10),
    balabce DOUBLE
)
-- 添加数据
INSERT INTO account (name,balance) VALUES ('zhangsan',1000) , ('lisi',1000);

-- 张三给李四转账500元
-- 0.开始事务
START TRANSACTION;
-- 1.张三账户-500
UPDATE account SET balance = balance - 500 WHERE name = 'zhangsan';
-- 2.李四账户+500
UPDATE account SET balance = balance + 500 WHERE name = 'lisi';
-- 执行没问题,提交事务
COMMIT;
-- 发现问题,回滚
ROLLBACK;
最后修改:2021 年 04 月 14 日
如果觉得我的文章对你有用,请随意赞赏