但行好事
莫论前程❤

Oracle和PL/SQL什么时候需要Commit

执行命令后没有commit提交,那么更新的内容只是被保存到内存中,而不是提交到数据库中,将不会被其他Session(对话)看到,其他对话看到的是更新前的数据。当用户退出对话时,Oracle才会自动commit。

SQL语言分为五大类:

DDL(数据定义语言)CreateAlterDrop 这些语句自动提交,无需用Commit提交。

DQL(数据查询语言)Select查询语句不存在提交问题。

DML(数据操纵语言)InsertUpdateDelete 这些语句需要Commit才能提交。

DTL(事务控制语言)CommitRollback 事务提交与回滚语句。

DCL(数据控制语言)GrantRevoke 授予权限与回收权限语句。

执行完DML语句,若没有commit再执行DDL语句,也会自动commit未被commit的数据。

如果打开自动提交,DML操作后也不需要手动提交:

SET AUTOCOMMIT ON;
# 查看自动提交的状态
show autocommit

而PL/SQL中DML语句需要手动提交,可以执行commit;
也可以点击提交按钮【位于齿轮右侧,快捷键F10】。回滚快捷键F11。
当关闭窗口时,也会自动执行commit;进行提交。

for update

select * from table_name for update;

for update 修改完内容之后也需要commit;

是否需要commit,可以通过查看PL/SQL开发工具,工具栏中的commit按钮是否可点击来查看。

赞(2) 打赏
未经允许不得转载:刘鹏博客 » Oracle和PL/SQL什么时候需要Commit
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏