三十一、事务控制

简介: 三十一、事务控制

一、什么是事务控存储

事务是指作为一个逻辑工作单元执行的一些列操作,这些操作要么全部成功,要么全部失败。事务确保对多个数据的修改作为一个单元来处理。


在 MySQL 中,只有使用了 Innodb 存储引擎的数据库或表才支持事务;

事务用于维护数据库的完整性,保证成批的 sql 语句要么都执行,要么都不执行;

事务用于管理 INSERT、UPDATE、DELETE 语句。

二、事务的四个特性

如果某个数据库声称支持事务,那么该数据库必须具备 ACID 四个特性,即 Atomicity(原子性)、Consistency (一致性)、 Isolation (隔离性) 和 Durability (持久性)。


  1. 原子性:事务必须是原子工作单元,事务中包含的个操作要么都做,要么都不做。
  2. 一致性:事务在执行完成时,必须使所有的数据都保持一致状态。
  3. 隔离性:事务独立运行,多个事务之间相互隔离互不干扰。事务的100%隔离会牺牲速度。
  4. 持久性:事务执行完成后,它对系统的影响是永久性的。

三、MySQL 的事务控制

在默认情况下, MySQL 是自动提交事务的,即每一条 INSERT、UPDATE、DELETE SQL 语句提交后会立即执行 COMMIT 操作。因此要开启一个事务,可以使用 start transaction 或 begin ,或者将 autocommit 的值设为 0 。常见事务语法如下:

# 开启事务
begin
# 提交事务
commit;
# 回滚事务
rollback;


目录
相关文章
|
3月前
|
安全 Java easyexcel
【二十七】springboot实现多线程事务处理
【二十七】springboot实现多线程事务处理
242 0
|
3月前
|
SQL 前端开发 Java
理清SpringBoot CURD处理逻辑、顺序
理清SpringBoot CURD处理逻辑、顺序
96 0
|
3月前
|
设计模式 前端开发 Java
Java设计模式【二十六】:MVC模式
Java设计模式【二十六】:MVC模式
45 0
|
10月前
|
XML 前端开发 安全
自定义MVC增删改查(终极篇)
自定义MVC增删改查(终极篇)
40 0
|
监控 容器
浅入ABP系列(3):增加日志组件、依赖注入服务
浅入ABP系列(3):增加日志组件、依赖注入服务
312 0
|
2月前
|
XML Java 数据库
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
23 0
|
3月前
|
监控 安全 测试技术
SAP ABAP 系统 STRUST 事务码里 Distribute 功能介绍
SAP ABAP 系统 STRUST 事务码里 Distribute 功能介绍
|
11月前
|
SQL 存储 数据库
C#三十三 事务
C#三十三 事务
35 0
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(上)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
126 1
|
Java 数据库连接 数据库
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤(下)
高效掌握JDBC技术(三)| 三层架构理念 | 书写符合事务特性的工具类 | JUnit测试框架 | JDBC项目开发步骤
95 1