テーブル削除、復活(DROP、FLASHBACK TABLE)について
Oracle10gからテーブルの削除(DROP TABLE)に「ごみ箱」(RECYCLEBIN:リサイクルビン)の機能が追加されました。
以下のようなSQLでテーブルを削除した場合は、テーブルは、直ちに削除されずに「ごみ箱」(RECYCLEBIN:リサイクルビン)に移されます。
テーブルオブジェクトは作成されたときと同じ領域を占有しています。
アプリケーションによっては「ごみ箱」(RECYCLEBIN:リサイクルビン)テーブル情報も表示されるので注意が必要です。
但し、SYSTEM表領域に表を作成していた場合は、「ごみ箱」に移されることなく直ちに削除されます。
DROP TABLE テーブル名 CASCADE CONSTRAINTS;「ごみ箱」に移されたテーブルは、「BIN$~」で始まるテーブル名にされます。 「ごみ箱」に移されたテーブル名は、SQL*Plusなどで「SHOW RECYCLEBIN」コマンドを実行することで見ることが出来ます。 「ごみ箱」に移されたテーブルを削除するには下のSQLで削除します。
-- ユーザー毎の「ごみ箱」に移されたテーブルを削除する PURGE RECYCLEBIN; -- システム全体で「ごみ箱」に移されたテーブルを削除する PURGE DBA_RECYCLEBIN;
PURGE:パージ(解放)句について
Oracle10g以前の従来通り直ちに物理的削除する場合は、「PURGE」:パージ(解放)句が必要となります。
DROP TABLE テーブル名 CASCADE CONSTRAINTS PURGE;
削除テーブルのFLASHBACK:フラッシュバック(復活)について
削除されて「ゴミ箱」(RECYCLEBIN)にあるテーブルを元に戻したい場合は、以下のSQLで復活します。
FLASHBACK TABLE テーブル名 TO BEFORE DROP;