为了账号安全,请及时绑定邮箱和手机立即绑定

请问关于oracle的commit?

/ 猿问

请问关于oracle的commit?

精慕HU 2019-09-14 15:11:27

oracle的commit


查看完整描述

4 回答

?
白板的微信

commit等于提交
就是你做了insert或者update后,commit后才是真正修改或者插入了数据库中
如果不提交的话,那么这个表就被锁了

查看完整回答
反对 回复 2019-09-19
?
HUX布斯

oracle的commit就是提交数据(这里是释放锁不是锁表),在未提交前你前面的操作更新的都是内存,没有更新到物理文件中。
执行commit从用户角度讲就是更新到物理文件了,事实上commit时还没有写date file,而是记录了redo log file,要从内存写到data物理文件,需要触发检查点,由DBWR这个后台进程来写,这里内容有点多的,如果不深究的话你就理解成commit即为从内存更新到物理文件。
锁有很多种,一般我们关注的都是DML操作产生的,比如insert,delete,update,select...for update都会同时触发表级锁和行级锁
补充:对的,insert以后commit之前是锁表的状态,其他事务无法对该表进行操作。


查看完整回答
反对 回复 2019-09-19
?
守着一只汪

SQL语言分为五大类:
DDL(数据定义语言) - Create、Alter、Drop 这些语句自动提交,无需用Commit提交。
DQL(数据查询语言) - Select 查询语句不存在提交问题。
DML(数据操纵语言) - Insert、Update、Delete 这些语句需要Commit才能提交。
DTL(事务控制语言) - Commit、Rollback 事务提交与回滚语句。
DCL(数据控制语言) - Grant、Revoke 授予权限与回收权限语句。

查看完整回答
反对 回复 2019-09-19
?
繁华开满天机

这个完全看你自己的需求。

如果是你不需要再存储过程中进行提交,而是由调用程序负责提交或者回滚,那么不需要再存储过程中commit或者rollback

如果你不想由调用程序负责提交或者回滚,那么应该在存储过程中进行commit或rollback

查看完整回答
反对 回复 2019-09-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信