[Oracle] 間違えて消したデータを復活させる [オラクル]
やりたいこと
間違えて削除したデータを元に戻したい。復活させたい。
DELETE文でデータを消してしまった場合は、COMMITした後でも元に戻せる可能性があります。
この記事で紹介します。
TRUNCATE文で消してしまった場合は、残念ながらバックアップから戻す必要があります。
またDROP TABLE文で削除したテーブルを元に戻す方法は別の記事で紹介しています。
仕組みの話
OracleのFLASHBACK機能を使用します。
FLASHBACK機能では、UNDO表領域のデータを使用して過去のデータを参照できます。
つまり元に戻すためのデータがUNDO表領域に残っていれば元に戻せるということです。
誤った操作をしてしまったらすぐに対処しましょう。
削除したデータを元に戻す
間違えてDELETE文を実行した日時(時分秒まで)が分かると話が早いです。
元に戻す際は、何時何分何秒のデータにしたいかを指定します。
-- もとに戻したいデータがあるか確認
-- 2022/03/09 10:00:00の箇所はデータが存在したであろう日時を指定してください。
-- WHERE句でテーブル目的のデータを指定してください。
SELECT * FROM <テーブル名> AS OF TIMESTAMP
TO_TIMESTAMP('2022/03/09 10:00:00','YYYY/MM/DD HH24:MI:SS')
WHERE <条件>;
過去のデータが存在することが確認できたら、FLASHBACK TABLE文でもとに戻します。
-- 元に戻すSQL文(テーブル名は消したテーブル名)
-- 2022/03/09 10:00:00の箇所はデータが存在したであろう日時を指定してください。
FLASHBACK TABLE <テーブル名> TO_TIMESTAMP('2022/03/09 10:00:00','YYYY/MM/DD HH24:MI:SS');
Author And Source
この問題について([Oracle] 間違えて消したデータを復活させる [オラクル]), 我々は、より多くの情報をここで見つけました https://qiita.com/nisshii0/items/c3106641f8b62dd04b6a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .