文章目录
- 1 什么是事务
- 2 事务特性
-
- 2.1原子性(ATOMICITY)
- 2.2 一致性(CONSISTENCY)
- 2.3 隔离性(ISOLATION)
- 2.4 持久性(DURABILITY)
- 3 使用事务
-
- 3.1 事务类型
- 3.2 事务提交
- 3.3 事务回滚
- 3.4 设置回滚点
1 什么是事务
事务是指作为单个逻辑工作单位执行的一系列操作,要么完全执行,要么完全不执行。
2 事务特性
2.1原子性(ATOMICITY)
事务中的操作要么不做,要么全部做。
2.2 一致性(CONSISTENCY)
一个事务应该保护定义在数据上的所有不变属性(如完整性约束)。数据在完成成功事务时应保持一致。
2.3 隔离性(ISOLATION)
其他事务不能干扰一个事务的执行。
2.4 持久性(DURABILITY)
一旦提交事务,数据库中数据的变化应该是永久性的。
3 使用事务
- commit 事务提交
- rollback 事务回滚
- savepoint 设置回滚点
3.1 事务类型
我们需要手动提交或回滚。
DML语言中的所有操作都是显示事务操作。
自动提交数据库,不需要我们做任何操作,也不需要回滚。
DDL,DCL语言是隐式事务语言。
3.2 事务提交
commit
当我们执行一个时DML语言之后,此时的数据不会持续到数据文件中,需要使用commit确认提交。
3.3 事务回滚
rollback
当我们执行一个时DML也可以在语言之后使用rollback撤销当前对表操作。
3.4 设置回滚点
Savepoint
Rollback to
例如:
insert into emp values(1,'ZhangSan',500,null); SavePoint A; insert into emp values(2,'LiSi',1000,null); SavePoint B; insert into emp values(3,'WangWu',1500,null); rollback to B; commit;
说明:这里有两个回滚点A和B。但我执行了rollback to B;那么在我commit;第三条数据没有插入表中,只插入前两条。如果我执行,rollback to A;然后只能插入第一个。