当前位置: 首页 > news >正文

Oracle中的commit与rollback

SQL语言分为五大类:

DDL(数据定义语言:DataDefinitionLanguage) - Create、Alter、Drop 这些语句自动提交,无需用Commit提交。

DQL(数据查询语言:DataQueryLanguage) - Select 查询语句不存在是否提交问题。

DML(数据操纵语言:DataManipulationLanguage) - Insert、Update、Delete 这些语句需要Commit才能提交。

DTL(事务控制语言:TransactionControlLanguage) - Commit、Rollback 事务提交与回滚语句。

DCL(数据控制语言:DataControlLanguage) - Grant、Revoke 授予权限与回收权限语句。


1.commit

在数据库的插入(insert)、删除(delete)和修改(update)操作时,只有当事务在提交到数据库时才算完成。在Oracle 数据库中,在事务提交前,只有操作数据库的当前session能有权看到所做的事情,别的session在另外一个session最后提交完成时才能看见所修改的内容。commit就是确定提交的意思,比如你用update更新表中一条记录,而不commit,那么别的账户在查询这个表时就查询不到你update的记录,自己是可以查询到的;而commit后则其他账户就能查询到你update的记录了。

2.rollback
rollback:就是回退的意思,比如你用update更新表中一条记录,这时你查询这个表时,则发现表已经更新(注意别的用户查询这个表会发现表未更新);再rollback后,你再查询表时,发现表还是更新之前的样子。

在没有进行commit之前,是对内存的操作,可以rollback;如果commit,则修改了物理地址的数据,则不能rollback了。
3.作用的范围与注意点

两者只对insert、update、delete(DML数据操纵语句)操作有效。

注意点:
3.1、先commit再rollback,则rollback相当于不起作用。
3.2、若现delete再select再rollback,,则rollback会撤回delete操作。
3.3、其他用户查询你的表时看到的是commit之后的表,而你看到的是最新操作的表。
 

http://www.lryc.cn/news/321172.html

相关文章:

  • 鸿蒙Harmony应用开发—ArkTS声明式开发(画布组件:OffscreenCanvasRenderingContext2D)
  • Redis如何实现主从复制?主从复制的作用是什么?Redis集群是如何工作的?它有哪些优点和缺点?
  • 【Numpy】(2)numpy对象和random模块
  • [QJS xmake] 非常简单地在Windows下编译QuickJS!
  • Ubuntu双系统/home分区扩容
  • 0基础学习VR全景平台篇第145篇:图层控件功能
  • 一文看懂套利的那些事儿
  • 【工具】Mermaid + 大模型画流程图
  • 内网渗透学习-环境搭建
  • el-progress渐变色
  • DHCP在企业网的部署及安全防范
  • 列表的常用操作
  • 外包2月,技术退步惊现!大专生逆袭大厂,全靠这份神秘资料!
  • 考研失败, 学点Java打小工_Day3_卫语句_循环
  • 网络架构层_服务器上下行宽带
  • 面试算法-47-有效的括号
  • Android11 HID开发系统源码配置
  • 73_Pandas获取分位数/百分位数
  • 力扣练习题
  • Telegraf--采集指定信息
  • Redis是如何实现持久化的?请解释RDB和AOF持久化方式的区别和优缺点。Redis是单线程还是多线程的?为什么Redis使用单线程模型仍然能保持高性能?
  • java通过Excel批量上传数据
  • VS2022 配置QT5.9.9
  • 接收用户输入的数字,判断是否是质数(素数)以及输出1-100之间的所有质数
  • 人脸识别AI视觉算法---豌豆云
  • Apache SeaTunnel MongoDB CDC 使用指南
  • 智能合约 之 部署ERC-20
  • 【C++】用红黑树模拟实现set、map
  • 实现:mysql-5.7.42 到 mysql-8.2.0 的升级(二进制方式)
  • 深入探讨医保购药APP的技术架构与设计思路