oracle—在pl/sql developer中使用了不带where子句的update语句

kt06eoxx  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(482)

我在pl/sql developer中错误地执行了一条没有where子句的update语句。当我发现执行需要一段时间才能完成时,我确实单击了break按钮,commit和rollback按钮在中断执行后变灰,因此无法回滚事务。我担心break按钮是在pl/sqldeveloper中提交事务还是回滚到以前的状态。

k7fdbhmy

k7fdbhmy1#

pl/sqldeveloper的break键不提交,它只是中断当前操作并保持操作开始时的状态,包括任何打开的事务。例如,如果您在没有提交的情况下进行了三次更新,然后启动了第四次更新,但使用break键中断了更新,那么前三次更新仍将处于未提交状态,提交和回滚图标将处于活动状态。
图标变灰了,因为没有要提交的事务。pl/sql开发人员通过调用 dbms_transaction.local_transaction_id 在每个语句之后检查是否有打开的事务。
如果您没有看到“are you sure?”警告弹出窗口,您可以选中configure>user interface>options>dsa dialogs(配置>用户界面>选项>dsa对话框),以防以前在“don't show this message again”(不再显示此消息)弹出窗口中单击“ok”(确定)。

nnt7mjpx

nnt7mjpx2#

第一步是保持冷静。。否则你就无法正常思考。
立即执行回滚命令。
然后运行一个查询来选择updated字段,并检查结果是否包含除updated值以外的任何值。
例如,如果执行下面的查询,
update employees set status='inactive'您应该检查status列是否包含除'inactive'以外的任何值
如果列中包含除更新值以外的任何值,则可以。
系统回滚了update语句。
如果列不包含更新值以外的值,请与数据库管理员连接以回滚此事务。
他们可以不费吹灰之力地做到这一点。

相关问题