首页 新闻 会员 周边

关于oracle中commit问题

0
悬赏园豆:10 [已解决问题] 解决于 2017-02-21 09:18

用PLSQL给oracle表中新增一条数据,未commit,直接关掉数据库。第二次重启服务,打开数据库查看此表,发现新增的数据依然存在,上网查了一下,众说纷纭,请前辈指教一下commit原理。谢谢

景#的主页 景# | 初学一级 | 园豆:170
提问于:2017-02-20 10:01
< >
分享
最佳答案
0

DML语言,比如update,delete,insert等修改表中数据的需要commit;

DDL语言,比如create,drop等改变表结构的,就不需要写commit(因为内部隐藏了commit);

 

当执行DML命令如果没有提交,将不会被其他会话看到。除非在DML命令之后执行了DDL命令或DCL命令,或用户退出会话,或终止实例,此时系统会自动 发出commit命令,使未提交的DML命令提交。

收获园豆:10
Ctrl` | 老鸟四级 |园豆:3317 | 2017-02-20 10:46

这样的话个人觉得commit没有什么实质意义。如果一直在同一会话操作调用,然后退出或终止,这样和commit的作用是一样的。

景# | 园豆:170 (初学一级) | 2017-02-20 11:05

@景#: 反正为了保险起见。还是手动触发下。万一辛辛苦苦弄了半天数据..就没commit而关闭没保存的话。是一个很蛋疼的事情

Ctrl` | 园豆:3317 (老鸟四级) | 2017-02-20 11:14

@g皓皓:哈哈,这倒是真的。

景# | 园豆:170 (初学一级) | 2017-02-20 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册