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

相关推荐
ClouGence4 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
曹牧5 天前
Oracle EXPLAIN PLAN
数据库·oracle
贤时间5 天前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心5 天前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
Curvatureflight5 天前
MySQL 深分页越来越慢?从 LIMIT OFFSET 改成游标分页
数据库·oracle
XZ-0700015 天前
MySQL事务
数据库·mysql·oracle
tiancaijiben5 天前
阿里云函数计算FC如何实现网站的定时任务与自动化
数据库·oracle·dba
xfhuangfu5 天前
Oracle 19c 多租户体系架构介绍
数据库·oracle·架构
杨云龙UP5 天前
Spotlight 接入 Oracle 数据库监控操作指南 2026-06-16
数据库·oracle·性能监控·预警·阈值·spotlight·瓶颈分析
unique5 天前
AI Coding 采集方案探索
jvm·人工智能·oracle