Oracle Recyclebin
Oracleでは、10gより、Dropしたオブジェクトは、一旦、リサイクルビン(Recyclebin)という、ゴミ箱のようなものに移動するようになった。
そこから復元(Flashback)する手順と、完全に削除(Purge)する手順。
1.まずはリサイクルビンの中を確認
SQL*Plusで、
show recyclebin;
または、
select * from recyclebin;
ちなみに、リサイクルビンに入れられたテーブルは、テーブル名がBIN$~となっている。
select table_name from user_tables where table_name like'BIN%';
2.リサイクルビンから復元
flashback table 元のテーブル名 to before drop;
または、
flashback table BIN$~ to before drop;
リサイクルビンに、同じ元のテーブル名が複数ある場合、直近のものが復元される。
3.リサイクルビンから削除
purge table 元のテーブル名;
または、
purge table 'BIN~';
リサイクルビンに、同じ元のテーブル名が複数ある場合、もっとも古いものが削除される。
また、すべて削除するなら、
purge recyclebin;
リサイクルビンに入れず、すぐに完全に削除する場合は、
drop table テーブル名 purge;