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之后的表,而你看到的是最新操作的表。
Oracle中的commit与rollback相关推荐
- 【基础】ORACLE中on commit preserve rows和 on commit delete rows的区别
首先on commit preserve rows 和 on commit delete rows 都是在oracle 创建临时表时用到的, delete rows用于事务相关,也就在事务结束后tru ...
- oracle的ora01504,Oracle中的ORA-01548: active rollback segment '_SYSSMU1$' found
接上文<Oracle Undo tablespace恢复(无备份)> 1.在创建新的undo tablesapce "undotbs2"后,删除旧的undo table ...
- oracle添加语句 commit,Oracle COMMIT语句
在Oracle中,COMMIT语句可以用来提交当前事务的所有更改.提交后,其他用户将能够看到您的更改.本文要为大家带来的就是COMMIT语句的用法. COMMIT语句语法: Oracle / PLSQ ...
- oracle 开始一个事务,oracle的启动与关闭原理-事务commit或者rollback
oracle的启动与关闭原理-事务commit或者rollback 4.事务 4.1事务的概念 从第一个DML语句开始执行,以rollback或者commit为结束标记,之前所有的DML操作(inse ...
- oracle中rollback用法,Oracle中SAVEPOINT和ROLLBACK用法
savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...
- oracle删除的数据没有commit,在Oracle中误删除数据后并commit后的数据恢复办法
在Oracle中误删除数据后并commit后的数据恢复办法 背景:表A数据误操作,被delete了,恢复. --1.先备份A表当前数据. --2.查询某 在Oracle中误删除数据后并commit后的 ...
- PLSQL中 commit 和 rollback 的区别
一. commit(提交) 作用:commit即提交,表示这个事务的所有操作都执行成功,commit告诉系统,数据库要进入一个新的正确状态,该事务对数据库的所有更新都要确保不因数据库的宕机而丢失. 提 ...
- P52 DCL中commit与rollback的使用
4.DCL 中COMMIT 和ROLLBACK #7.DCL 中COMMIT 和ROLLBACK #commit:提交数据.一旦执行commit,则数据就被永久的保存在了数据库中, #意味着数据不可以 ...
- oracle中创建触发器
从csdn上面看到一个如何创建触发器的问题,感觉自己很有必要保存学习,特写下来: 条件: 现有A.B两张表 A: 工号 姓名 密码 性别 年龄 ... B: 工号 姓名 密码 当对A表中的" ...
最新文章
- python装饰器-如何更通俗地讲解Python的装饰器?
- 【数据结构与算法】之深入解析“比特位计数”的求解思路与算法示例
- cvs有机添加剂检测_美国ECI CVS 电镀添加剂分析仪QL-10EX
- python time模块和random 模块
- 《linux核心应用命令速查》连载十一:pstree:显示进程状态树
- 外螺纹对照表_螺纹螺距对照表
- matlab 矩阵白化,主成分分析中如何对矩阵进行白化处理
- solidworks绘制齿轮、机械爪(齿轮设计基础知识)
- 2022-2027年中国机动车检测行业发展前景及投资战略咨询报告
- C++计算三角形周长和面积
- 2018湖南省第14届大学生计算机程序设计竞赛---卖萌表情
- 在线五子棋对战 --- 人机对战的实现
- C语言实现将彩色BMP位图转化为二值图
- OCT-模拟集成电路设计的九个境界
- Linux下lsof命令详解
- P1873 砍树 【二分】
- 电信运营商的流量经营策略与方法培训大纲
- python cv2画点_opencv-python鼠标画点:cv2.drawMarker()
- 反arp攻击软件_技术干货透析中间人攻击
- Visual Studio调试器指南---自动启动调试器