事务
什么是事务
一个事务是一个完整的业务逻辑单元,不可再分。
与事务相关的语句只有(DML语句)。(insert delete update)
事务原理
事务的特性
事务包含四大特性:ACID
A:原子性:事务最小的工作单元,不可再分
C:一致性:事务必须保证多条DML语句同时成功或者同时失败
I: 隔离性:事务A与事务B之间具有隔离
D:持久性:持久性说的是最终数据必须持久化到硬盘文件中,事务才算成功的结束
事务的隔离性
事务的隔离性存在隔离级别,理论上隔离级别有4个:
第一级别:读未提交
对方事务还没有提交,我们当前事务可以读取到对方未提交的数据。
读未提交存在脏读现象
第二级别:读已提交
对方事务提交之后的数据我方可以读取到。
这种隔离级别解决了脏读现象。
读已提交存在的问题是:不可重复读。
第三级别:可重复度
这种隔离级别解决了:不可重复读问题
这种隔离级别存在的问题是:读到的数据都是虚的。
第四级别:序列化读/串行化读
解决了所有问题。
效率低。需要事务排队。
开始事务
BEGIN TRANSACTION <事务名称> |@ <事务变量名称>
提交事务
COMMIT TRANSACTION <事务名称> |@ <事务变量名称>
撤销事务
ROLLBACK [TRANSACTION] <事务名称> |@ <事务变量名称> |<存储点名称> | @<含有存储点名称的变量名>