事务
需要在同一个处理单元中执行的一系列更新处理的集合。使用事务开始语句和事务结束语句,将一系列 DML 语句(INSERT/ UPDATE/DELETE 语句)括起来,就实现了一个事务处理。
事务开始与结束语句
事务开始语句
- QL Server、PostgreSQL
BEGIN TRANSACTION - MySQL
START TRANSACTION - Oracle、DB2
无
事务结束语句
commit事务提交
提交事务包含的全部更新处理的结束指令,一旦提交,就无法恢复到事务开始前的状态。
rollback取消处理
取消事务包含的全部更新处理的结束指令,一旦回滚,数据库就会恢复到事务开始之 前的状态
事务特性
- 原子性(Atomicity)
原子性是指在事务结束时,其中所包含的更新处理要么全部执行,要么完全不执行。该事务的结束状态,要么是两者都执行了
(COMMIT),要么是两者都未执行(ROLLBACK)。 - 一致性(Consistency),也叫完整性
一致性指的是事务中包含的处理要满足数据库提前设置的约束,如主键约束或者 NOT NULL 约束等。 - 隔离性(Isolation)
隔离性指的是保证不同事务之间互不干扰的特性。该特性保证了事务之间不会互相嵌套。此外,在某个事务中进行的更改,在该事务结束之前, 对其他事务而言是不可见的。因此,即使某个事务向表中添加了记录,在 没有提交之前,其他事务也是看不到新添加的记录的。 - 持久性(Durability)
持久性也可以称为耐久性,指的是在事务(不论是提交还是回滚)结
束后,DBMS 能够保证该时间点的数据状态会被保存的特性。即使由于系统故障导致数据丢失,数据库也一定能通过某种手段进行恢复。