理论教育 Oracle数据库管理与开发:事务种类汇总

Oracle数据库管理与开发:事务种类汇总

时间:2023-10-30 理论教育 版权反馈
【摘要】:事务分为如下两种。②第4行表示事务的提交或回滚。②当事务结束后,第一次执行DML语句。隐式方式该类型的事务没有明确的开始和结束标志。使用事务保证数据的一致性。图13.1查询DML操作结果从图13.1中可以看出DML操作数据成功。图13.2新会话查询表DEPARTMENTS数据此时可以发现,当会话1的事务没有提交时,会话2不能查看到会话1修改的数据。图13.3提交事务后查询结果此时可以发现事务一旦提交,SQLPlus就能查询到修改的数据。

Oracle数据库管理与开发:事务种类汇总

事务分为如下两种。

(1)显式方式

所谓“显式方式”,即是利用命令完成。语法如下:

【语法说明】

①第2~3行表示事务内的SQL语句,可以是单条,也可以是多条。

②第4行表示事务的提交或回滚。

Oracle中的事务不需要设置开始标志。通常有下列情况之一时,事务会开启:

①登录数据库后,第一次执行DML语句。

②当事务结束后,第一次执行DML语句。

(2)隐式方式

该类型的事务没有明确的开始和结束标志。它由数据库自动开启,当一个程序正常结束或使用DDL语言时会自动提交,而操作失败时也会自动回滚。如果设置AUTOCOMMIT为打开状态(默认关闭),则每次执行DML操作都会自动提交。命令语法如下:

事务在什么条件下结束需要引起注意,否则会有丢失数据的可能。当有下列情况之一时,事务会结束:

①使用COMMIT事务提交,ROLLBACK事务回滚。

②执行DDL语句,事务自动提交。例如,使用CREATE、DROP、GRANT、REVOKE等命令。

③正常退出SQL∗Plus时自动提交事务,非正常退出则ROLLBACK事务回滚。

事务可以保证数据的一致性。前面已经介绍过,事务没有提交时,当前会话所作的操作其他会话不会看到,下面用例13.1来演示。

【例13.1】 使用事务保证数据的一致性。

演示事务如何保证数据的一致性,这里分为下述4个步骤。

①登录SQL∗Plus,用户称该窗口为SQL∗Plus1,在hr模式下,执行如下两条语句:(www.daowen.com)

当以上操作提示成功后,查询DEPARTMENTS表的内容,验证数据是否修改成功,结果如图13.1所示。

图13.1 查询DML操作结果

从图13.1中可以看出DML操作数据成功。注意,此时还没有提交事务的操作。

②以同样的用户名登录新的SQL∗Plus,用户称该窗口为SQL∗Plus2。同样查询表DEPARTMENTS的数据,查看数据修改情况,结果如图13.2所示。

图13.2 新会话查询表DEPARTMENTS数据

此时可以发现,当会话1的事务没有提交时,会话2不能查看到会话1修改的数据。

③在SQL∗Plus1窗口提交事务。具体脚本如下:

当事务提交完成后,SQL∗Plus2窗口再次查询DEPARTMENTS表数据,结果如图13.3所示。

图13.3 提交事务后查询结果

此时可以发现事务一旦提交,SQL∗Plus就能查询到修改的数据。由此可以看出,事务可以保证数据的一致性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈