事务(数据库)

是一组操作的集合,是一个不可分割的工作单位,事物会把所有的操作作为一个整体一起向系统提交或撤销操作请求,这些操作要么同时成功,要么同时失败

sql 复制代码
create table account(
    id int auto_increment primary key comment '主键ID',
    name varchar(10) comment '姓名',
    money int comment '余额'
) comment '账户表';
insert into account values (null,'张三',2000),(null,'李四',2000);

-- 恢复数据
update account set money = 2000 where name = '张三' or name = '李四';


select @@autocommit;

set @@autocommit = 1; -- 设置为手动提交


-- 转账操作(张三给李四转账1000)
-- 1.查询张三账户的余额
select * from account where name = '张三';

-- 2.将张三账户余额-1000
update account set money = money - 1000 where name = '张三';

-- 3.将李四账户余额+1000
update account set money = money + 1000 where name = '李四';

-- 提交事物
commit ;

-- 回滚事物
rollback ;

-- 方式二
-- 转账操作(张三给李四转账1000)
start transaction ;

-- 1.查询张三账户的余额
select * from account where name = '张三';

-- 2.将张三账户余额-1000
update account set money = money - 1000 where name = '张三';

程序执行报错...

-- 3.将李四账户余额+1000
update account set money = money + 1000 where name = '李四';

-- 提交事物
commit ;

-- 回滚事物
rollback ;

事物四大特性

  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功要么失败
  • 一致性(Consistency):事物完成时,必须使所有的数据都保持一致状态
  • 隔离性(Isolation):数据库系统提供的隔离机制,保证事物在不受外部并发操作影响的独立环境下运行
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

并发事务问题

  • 脏读:一个事务读到另外一个事务还没有提交commit的数据
  • 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读
  • 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了"幻影"

事务隔离级别

相关推荐
延凡科技3 小时前
延凡科技综合监控预警处置平台—— 一体化视频AI安防闭环系统设计与功能实现[特殊字符]️
数据库·人工智能·科技·安全·能源
老马聊技术3 小时前
Rocky Linux 9.0 安装 MySQL8.x详细教程
linux·数据库
醇氧3 小时前
主流 Agent 开发框架全解析(2026 最新)
大数据·数据库·人工智能·开源
吴声子夜歌3 小时前
Redis 6.x——整合SpringBoot
数据库·spring boot·redis
ATA88883 小时前
AI辅助生成SQL实战从连接配置到执行计划优化的完整技术流程
数据库·人工智能·智能问数
咏方舟【长江支流】3 小时前
【开源】跨语言·跨平台·跨数据库(4) ——用宝框架 ORM 数据源适配器
数据库·开源·ai编程·orm·咏方舟-长江支流·用宝框架·用宝框架orm
JZC_xiaozhong4 小时前
OA调价审批后,采购调价单如何自动同步到ERP?解决漏录错价难题
大数据·linux·服务器·前端·数据库·数据孤岛解决方案·数据集成与应用集成
渣渣灰飞4 小时前
MySQL 系统学习 第五阶段:企业级 MySQL 实战开发 第一章:企业数据库设计规范
数据库·学习·mysql
IvorySQL4 小时前
PG 日报|新增 VFD 缓存监控视图,精细化数据库调优
大数据·数据库·人工智能·缓存·postgresql·区块链
咏方舟【长江支流】4 小时前
【开源】跨语言·跨平台·跨数据库(3) —— 为用宝框架增加ORM,让AI执行
数据库·人工智能·开源·ai编程·orm·咏方舟-长江支流·用宝框架