OracleのFLASHBACKテーブルをPURGEする。
Oracle10gからFLASHBACKが有効になっている場合は、単純にDROP TABLEしても元のテーブルがゴミ箱(RECYCLEBIN)に残っている。
しかし、DROP TABLEなんてテスト環境でしか実行しないので、FLASHBACKはあまり必要ない。
なので、通常はゴミ箱を経由しないようにDROP TABLEしている。
FLASHBACKしないDROP TABLE
1 | DROP TABLE TABLE_TEST_01 PURGE; |
これで、RECYCLEBINに保存せずにDROPできる。
PURGEを忘れてしまった場合
たまにPURGEを付けるのを忘れてしまい、BIN$…なテーブルが残ってしまう。それを消したいとき。
1 | PURGE TABLE TABLE_TEST_01; |
とすることで削除することができる。
ゴミ箱内のテーブルがすべて不要であれば、ゴミ箱ごとPURGEできる。
1 | PURGE RECYCLEBIN; |
まとめ
もし、DROP TABLEが本当に誤りだった場合、FLASHBACK TABLE文でテーブルを元に戻せる。
1 | FLASHBACK TABLE TABLE_TEST_01 TO BEFORE DROP; |
これで助かることがあるかもしれない。やっぱりFLASHBACHは残しておくべきだろうか・・・。
同じタグの記事
同じカテゴリの記事