読者です 読者をやめる 読者になる 読者になる

ゴミ箱(BIN$XXXX)

DB oracle

10gだと表をDROPしてもBIN$XXXXとかって名前で残る。

SQL>DROP TABLE hoge;
表が削除されました。

SQL> FLASHBACK TABLE hoge TO BEFORE DROP
フラッシュバックが完了しました。

SQL> SELECT table_name FROM user_tables WHERE table_name = 'HOGE';
TABLE_NAME
------------------------------------------------------------
HOGE

んー、確かに便利なんだけど、知らないとずっとゴミ残っちゃうよねこれ。
直でDROPさせたい場合は

DROP TABLE 表明 PURGE;

でいいみたい。

ゴミ箱の掃除は以下

PURGE TABLE 表名;
PURGE INDEX 索引名;
PURGE RECYCLEBIN;--接続中のユーザのゴミ箱を削除
PURGE DBA_RECYCLEBIN;--全部のゴミ箱を削除