猿问
下载APP

请问关于oracle的commit?

oracle的commit


FFIVE
浏览 79回答 4
4回答

智慧大石

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

慕勒3428872

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

拉丁的传说

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

拉风的咖菲猫

这个完全看你自己的需求。如果是你不需要再存储过程中进行提交,而是由调用程序负责提交或者回滚,那么不需要再存储过程中commit或者rollback如果你不想由调用程序负责提交或者回滚,那么应该在存储过程中进行commit或rollback
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答