在Oracle SQL Developer中执行删除操作后是否需手动提交事务?
Oracle SQL Developer删除数据后需手动提交事务吗?
是的,默认情况下,在Oracle SQL Developer中执行DELETE、INSERT、UPDATE这类DML操作后,必须手动提交事务,你的问题正是因为未提交事务导致的:
- Oracle作为事务型数据库,所有DML操作都会开启一个未提交的事务,SQL Developer默认不会自动提交这些事务。你在当前会话里看到数据被删除,只是会话内的临时状态,其他会话(比如你的GET接口所在的服务)因为Oracle的读一致性机制,根本看不到这个未提交的修改。
- 当你重启SQL Developer时,原会话被关闭,未提交的事务会自动回滚,所以之前删除的数据又会恢复。
提交事务的方式
- 执行SQL命令:
COMMIT; - 点击SQL Developer工具栏上的「提交」按钮(通常是带有对勾的图标)
关于自动提交的设置
如果希望SQL Developer自动提交事务,可以通过偏好设置调整:
- 点击顶部菜单「工具」→「偏好设置」
- 依次展开「数据库」→「工作表」
- 勾选「自动提交」选项
但要注意:自动提交会让你失去回滚误操作的机会,生产环境中建议谨慎开启,保持手动提交的习惯更安全。
内容的提问来源于stack exchange,提问作者Henry Bai
相关产品推荐
相关产品推荐

