oracle的commit

请问oracle的commit等于锁表么?如果不一样,那如何锁表呢?另外,好像在sqlserver中insert语句后,就没有commit,这个和DB有关么?谢谢!这个锁... 请问oracle的commit等于锁表么?如果不一样,那如何锁表呢?另外,好像在sql server中insert语句后,就没有commit,这个和DB有关么?谢谢!
这个锁表还不是很明白,是说insert之后,commit之前,是锁表的状态?
展开
 我来答
AA的雪人
2009-11-27 · TA获得超过403个赞
知道答主
回答量:53
采纳率:0%
帮助的人:82.5万
展开全部
oracle的commit就是提交数据(这里是释放锁不是锁表),在未提交前你前面的操作更新的都是内存,没有更新到物理文件中。
执行commit从用户角度讲就是更新到物理文件了,事实上commit时还没有写date file,而是记录了redo log file,要从内存写到data物理文件,需要触发检查点,由DBWR这个后台进程来写,这里内容有点多的,如果不深究的话你就理解成commit即为从内存更新到物理文件。

锁有很多种,一般我们关注的都是DML操作产生的,比如insert,delete,update,select...for update都会同时触发表级锁和行级锁

补充:对的,insert以后commit之前是锁表的状态,其他事务无法对该表进行操作。
badkano
2009-11-22 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885370
团长

向TA提问 私信TA
展开全部
commit等于提交
就是你做了insert或者update后,commit后才是真正修改或者插入了数据库中

如果不提交的话,那么这个表就被锁了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赫觅晴旁凡
2020-05-04 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:843万
展开全部
commit
就是确定提交的意思,比如你用test账户登录数据库insert到表中一条记录,而不commit,那么别的账户在登录这个数据库时就查询不到你insert
的记录;而commit后则其他账户就能查询到你insert的记录了。
rollback就是回滚的意思,比如你用test账户登录数据库delete表中一条记录,这时你查询这个表时,则delete的记录不存在;再rollback后,你再查询你delete的记录时,发现被删除的记录又回来了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆仰量4913
2018-08-02 · 超过43用户采纳过TA的回答
知道答主
回答量:76
采纳率:91%
帮助的人:47.9万
展开全部
SQL语言分为五大类:
DDL(数据定义语言) - Create、Alter、Drop 这些语句自动提交,无需用Commit提交。
DQL(数据查询语言) - Select 查询语句不存在提交问题。
DML(数据操纵语言) - Insert、Update、Delete 这些语句需要Commit才能提交。
DTL(事务控制语言) - Commit、Rollback 事务提交与回滚语句。
DCL(数据控制语言) - Grant、Revoke 授予权限与回收权限语句。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式