执行命令后没有commit提交,那么更新的内容只是被保存到内存中,而不是提交到数据库中,将不会被其他Session(对话)看到,其他对话看到的是更新前的数据。当用户退出对话时,Oracle才会自动commit。
SQL语言分为五大类:
DDL(数据定义语言) – Create
、Alter
、Drop
这些语句自动提交,无需用Commit提交。
DQL(数据查询语言)– Select
查询语句不存在提交问题。
DML(数据操纵语言) – Insert
、Update
、Delete
这些语句需要Commit才能提交。
DTL(事务控制语言) – Commit
、Rollback
事务提交与回滚语句。
DCL(数据控制语言) – Grant
、Revoke
授予权限与回收权限语句。
执行完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;
评论前必须登录!
注册