测试事务实现转账

-- =========================事务==============================


-- mysql是默认开启事务自动提交的
set autocommit=0  -- 关闭
set autocommit=1  -- 开启(默认的)


-- 手动处理事务
set autocommit=0   -- 关闭自动提交


-- 事务开启
start transaction -- 标记一个事务的开始,从这个之后的sql都在同一个事务内

insert xx
insert xx

-- 提交:持久化(成功!)
commit

-- 回滚:回到原来的样子(失败!)

rollback

-- 事务结束

set autocommit=1  -- 开启自动提交



-- 了解
savepoint 保存点名  -- 设置一个事务的保存点
rollback to savepoint 保存点名 -- 回滚到保存点
release savepoint 保存点名   -- 撤销保存点

 

 

-- 模拟转账:事务
SET autocommit = 0; -- 关闭自动提交
START TRANSACTION -- 开启一个事务(一组事务)


UPDATE ACCOUNT SET money=money-500 WHERE `name` ='A'   -- A减500
UPDATE ACCOUNT SET money=money+500 WHERE `name` ='B'   -- B加500

COMMIT    -- 提交事务,就被持久化了!
ROLLBACK;   -- 回滚

SET autocommit=1;   -- 恢复默认值

  图像帮助理解:

 

 

posted @   屯子里唯一的架构师  阅读(51)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示