18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > SQL事务(数据库)

SQL事务(数据库)

时间:2022-11-08 10:30:01 | 来源:信息时代

时间:2022-11-08 10:30:01 来源:信息时代

    SQL事务 : 一条或多条SQL语句的执行序列,该序列作为一个整体,在恢复时具有原子性,即事务中的所有语句或者全部成功执行,或者一条语句也不执行。
SQL事务的相关内容,是在SQL标准的SQL/基础部分中定义的。SQL标准中关于SQL事务的内容主要包括:
1. 事务管理
执行BEGIN TRANSACTION语句或调用引起事务初始化的SQL语句将初始化一个SQL事务,执行COMMIT语句或ROLLBACK语句将终止一个SQL事务。如果SQL事务是通过成功执行COMMIT语句而终止,则该SQL事务对SQL数据或模式所作的变更是持久的。如果SQL事务是通过ROLLBACK语句终止的,则该SQL事务对SQL数据或模式的所有变更均被撤销。
SQL标准中具体的事务管理语句如下:
(1) 开始事务语句:START TRANSACTION [隔离级|READ ONLY| READ WRITE]。READ ONLY表示该事务的访问方式为只读,READ WRITE表示该事务的访问方式为读写。
(2)提交语句:COMMIT[WORK]。提交语句有COMMIT和COMMIT WORK两种等价形式。
(3)回滚语句: ROLLBACK[WORK][保存点]。同样,回滚语句也有ROLLBACK和ROLLBACK WORK两种等价形式。保存点则用来实现SQL事务的部分回滚,具体将在下面介绍。
2. SQL事务的隔离级
SQL标准中把访问相同SQL数据或模式并且在时间上相互重叠的多个SQL事务称为并发SQL事务。SQL事务的隔离级是该SQL事务受并发SQL事务的影响及可能影响并发SQL事务的程度。SQL事务有四种不同的隔离级: READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。隔离级和并发SQL事务执行过程中可能发生的几种现象相关,这几种现象分别是:
(1) P1(“脏读”):SQL事务T1修改某一行,SQL事务T2在T1执行COMMIT之前读取该行。如果此时T1执行ROLLBACK,T2就会读取从未提交而被认为是从未存在的一行。
(2) P2(“不可重复读”): SQL事务T1读取某一行,SQL事务T2修改或删除该行,并执行COMMIT。如果T1此时试图重读该行,则它可能读到被修改后的值,或发现该行已被删除。
(3) P3(“幻象”): SQL事务T1读取满足某个搜索条件的行集,SQL事务T2执行满足T1所用搜索条件的SQL语句来产生一行或多行,如果SQL事务T1此时使用相同的搜索条件重复初始读操作,则会得到不同的行集。
四种隔离级可确保每个SQL事务要么执行完,要么根本不执行,且不丢失任何更新。相对于现象P1、P2和P3所采用的隔离级是不同的。表1指定对于给定的隔离级,某一现象是否可能发生。

表1 SQL事务隔离级与三种现象


P1P2P3
READ UNCOMMITTED可能可能可能
READ COMMITTED不可能可能可能
REPEATABLE READ不可能不可能可能
SERIALIZABLE不可能不可能不可能


READ UNCOMMITTED是最低的SQL隔离级。在这个隔离级上,SQL事务对SQL数据和模式的改变可被相同SQL会话中该SQL事务和其他SQL事务,或其他SQL会话中的相同SQL事务所感知。
READ COMMITTED是次低的SQL隔离级。在这个隔离级上,SQL事务不允许看见其他事务未提交的更新,但可看见其他事务提交的更新。
REPEATABLE READ是次高的SQL隔离级。在这个隔离级上,SQL事务不允许看见其他事务提交或未提交的更新,但可看到其他并发事务插入到数据库中的记录。
SERIALIZABLE是最高的SQL隔离级,能够保证事务并发执行的结果与一个串行化执行的结果相同,完全避免上述三种现象。
3. 保存点
使用保存点可以实现SQL事务的部分回滚。在SQL事务中,执行保存点声明语句时就建立了保存点。如果ROLLBACK语句引用保存点,则该保存点建立后所进行的所有变更均被撤销,而该SQL事务还原为它在执行保存点声明语句后的那一时刻的状态。SQL标准中具体的保存点管理语句如下:
(1)保存点声明语句:
SAVEPOINT保存点名
(2)释放保存点语句:
RELEASE SAVEPOINT保存点名
(3) 回滚到保存点语句:
ROLLBACK TO SAVEPOINT保存点名

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭