回退已更新到的列,但Oracle数据库中没有where

svdrlsy4  于 2023-02-15  发布在  Oracle
关注(0)|答案(1)|浏览(116)

早上好,在Oracle数据库中执行SQL查询期间,执行UPDATE时没有使用where,无意中更新了整个列,现在我想通过回滚检索它,问题是如何进行更新以更新我的列,并使用它进行恢复。要检索我的列,请使用以下查询:

select CONTENT  
 from ACTION as of timestamp 
      to_timestamp('21-NOV-2019 11:30:00', 'DD-MON-YYYY HH24:MI:SS');

现在我希望这个查询的响应作为参数来更新(UPDATE)ACTION表的整个CONTENT列;就像当时一样。

vlju58qv

vlju58qv1#

您可以使用简单的更新语句。我认为您只需要将列值更新为过去的值,而所有其他数据都需要保持不变。

Update action a
Set a.content = (select * from (select b.CONTENT from ACTION b 
Where b.primarykey_colum = a.primarykey_colum) as of timestamp to_timestamp('21-NOV-2019 11:30:00', 'DD-MON-YYYY HH24:MI:SS'));

如果要闪回整个表,请使用以下命令:

FLASHBACK TABLE action 
  TO TIMESTAMP to_timestamp('21-NOV-2019 11:30:00', 'DD-MON-YYYY HH24:MI:SS');

干杯!

相关问题