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之后的表,而你看到的是最新操作的表。

相关推荐
轩情吖10 分钟前
MySQL库的操作
android·数据库·mysql·oracle·字符集·数据库操作·编码集
脱发的老袁2 小时前
【数据库】Oracle手动清理归档日志
数据库·oracle
jnrjian2 小时前
Oracle 共享池 库缓存下的 Library Cache Lock
数据库·缓存·oracle
新缸中之脑17 小时前
在Reddit上探索未满足的需求
数据库·oracle
light blue bird20 小时前
产线多并发客户端指令操作场景组件
jvm·oracle·.net·winform
坐吃山猪1 天前
Neo4j04_数据库事务
数据库·oracle·neo4j
坐吃山猪1 天前
Neo4j01_图数据库概念和服务器安装
服务器·数据库·oracle
汇智信科1 天前
汇智信科网络考试系统:以技术赋能,重构在线测评新范式
linux·数据库·mysql·oracle·sqlserver·java技术
Apple_羊先森2 天前
ORACLE数据库巡检SQL脚本--22、检查碎片程度最高的业务表
数据库·sql·oracle
_codemonster2 天前
PreparedStatement 和 Statement的区别
数据库·oracle