如果您有一个只读数据库,则不必担心事务。但是对于你将要构建的几乎所有应用程序,情况并非如此。因此,交易的概念和管理对于您的应用程序的成功至关重要。
事务是Oracle数据库作为一个单元处理的一个或多个SQL语句的序列:要么执行所有语句,要么都不执行。事务隐含地从获取TX锁的任何操作开始:
- 发出修改数据的语句(例如,插入,更新,删除,合并)
- 发出SELECT ... FOR UPDATE语句时
- 使用SET TRANSACTION语句或DBMS_TRANSACTION包显式启动事务时
发出COMMIT或ROLLBACK语句会明确结束当前事务。
本文将介绍如何使用以下语句和功能定义,管理和控制应用程序中的事务:
- 提交和回滚
- 保存点
- 自治交易
- SET TRANSACTION语句
您可以在下面的事务处理和控制(doc)以及Oracle Live SQL和Oracle Dev Gym资源的链接中找到更多详细信息。
提交和回滚
回想一下事务的定义:“事务是Oracle数据库作为一个单元处理的一个或多个SQL语句的序列:要么执行所有语句,要么都不执行。” 当所有语句都“执行”时,这意味着您已将它们提交或保存到数据库中。
使用COMMIT语句保存所有更改,并使其对其他用户可见。请记住:在提交之前,没有人能够看到特定会话中所做的更改。提交后,每个有权访问受影响表的用户现在都可以看到表的新“状态”。
使用ROLLBACK语句撤消自上次提交以来(或自您在会话中启动第一个事务以来)的所有更改。
此