千家信息网

Oracle_事务控制语句

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,事务是对数据库操作的逻辑单位,在一个事务中可以包含一条或多条DML (数据操纵语言)、DDL (数据定义语言)和DCL (数据控制语言)语句,这些语句组成一个逻辑整体。事务的执行只有两种结果:要么全部
千家信息网最后更新 2024年11月25日Oracle_事务控制语句

事务是对数据库操作的逻辑单位,在一个事务中可以包含一条或多条DML (数据操纵语言)、DDL (数据定义语言)和DCL (数据控制语言)语句,这些语句组成一个逻辑整体。

事务的执行只有两种结果:要么全部执行,把数据库带入一个新的状态,要么全部不执行,对数据库不做任何修改。
对事务的操作有两个:提交( COMMIT )和回滚( ROLLBACK )。

提交事务时,对数据库所做的修改便永久写入数据库。
回滚事务时,对数据库所做的修改全部撤销,数据库恢复到操作前的状态。
事务可用于操作数据库的任何场合,包括应用程序、存储过程、触发器等。

事务具有四个属性,这四个属性的英文单词首字母合在一起就是ACID 。

这四个属性是:
·原子性( Atomicity ):事务要么全部执行,要么全部不执行,不允许部分执行。
·一致性( Consistency ):事务把数据库从一个一致状态带入另一个一致状态。
·独立性( Isolation ):一个事务的执行不受其他事务的影响。
·持续性( Durability ):一旦事务提交,就永久有效,不受关机等情况的影响。
一个事务中可以包含多条DML语句,或者包含一条DDL语句,或者包含一条DCL语句。

事务开始于第一条SQL语句,在下列之一情况下结束:
·遇到COMMIT或ROLLBACK 命令。
·遇到一条DDL或者DCL命令。
·系统发生错误、退出或者崩溃。
总之,事务是一系列可以把系统带入一个新的状态的操作,如果事务被提交,则数据库进入一个新的状态,否则数据库恢复到事务以前的状态。
在数据库中使用事务的好处是首先可以确保数据的一致性,其次在对数据做永久修改之前可以预览以前的数据改变,还可以将逻辑上相关的操作进行分组。
控制事务的方式有两种,一种是隐式控制,数据库管理系统根据实际情况决定提交事务还是回滚事务;下载地址 springmvc整合mybatis框架源码
另一种方式是显式控制,在事务的最后放置一条COMMIT或ROLLBACK命令,将事务提交或回滚。
如果是隐式控制,那么事务在遇到一条DDL命令,如CREATE ,或者遇到一条DCL 命令,如GRANT ,或者从SQL *Plus正常退出,即使没有发出COMMIT或ROLLBACK命令,这个事务将被自动提交。
如果从SQL*Plus非正常退出或发生系统崩溃,那么系统将自动回滚事务。
如果是显式控制,那么在事务的最后就要通过COMMIT命令提交事务,或者通过一条ROLLBACK命令回滚事务。

如果事务被提交,那么对数据库所作的修改将写人数据库。

如果回滚事务,一般情况下将回滚到事务的开始,即对数据库不做任何修改。
在Oracle 中,允许部分回滚事务,即可以将事务有选择地回滚到中间的某个点。
部分回滚是通过设置保存点( SAVEPOINT )来实现的。

事务中可以通过SAVEPOINT命令设置若干个保存点,这样可以将事务有选择地回滚到某一个保存点。

用户访问数据库时,数据库中的数据是放在缓冲区中的,当前用户可以通过查询操作,浏览对数据操作的结果。
如果没有提交事务,其他用户是看不到事务的修改结果的。

当一个用户修改表中的数据时,将对被修改的数据加锁,其他用户无法在此期间对该行数据进行修改,直到这个用户提交或回攘这个事务。
如果在事务的最后执行了COMMIT命令,则对数据的修改将被写入数据库,以前的数据将永久丢失,无法恢复,其他用户都可以浏览修改后的结果,在数据上加的锁被释放,其他用户可以对数据执行新的修改,在事务中设置的所有保存点将被删除

如果在事务中设置了保存点,并且在事务的最后执行ROLLBACK命令回滚到某个保存点,那么在此保存点之后的DML语句所做的修改将被丢弃,但是在此保存点之前的DML语句所做的修改仍然没有写入数据库,还可以进行提交或回滚。


事务 数据 数据库 命令 语句 用户 状态 控制 系统 一致 情况 结果 要么 永久 属性 语言 逻辑 部分 一致性 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 东营ios软件开发公司有哪些 软件开发与软件测试的关系 本地dns服务器查询 网络安全应急处置演练方案 软件开发第一步是什么 金山区推广软件开发费用是多少 斗鱼绑定角色老是显示服务器错误 jboss修改数据库连接 说说对网络安全法的认识 网络安全人人有责绘画作品 公用服务器部署于 华为网络安全及上岗证考试 物联软件开发 幼儿园安全教育网络安全知识 常州服务器供应商家 平面设计和软件开发哪个难学 服务器超级管理员 密码 为什么是否在数据库中会变成数字 数据库批量插入信息 图书馆数据库的使用体验 网站开发同软件开发区别 光遇显示服务器失败什么意思 平面设计和软件开发是一样的吗 数据库的数据源包括 本地dns服务器查询 网络安全时事评论 今年网络安全宣传周在哪举办 做软件开发有什么大项目 服务器装机后无法开机 delphi7 数据库
0