0

データベース内の他の場所 (主にビュー) で使用されていないテーブルを削除する必要があります。一連のDROP TABLE...コマンドをリストしましたが、使用されたテーブルが見つかるたびにエラー メッセージが表示されるため、一度に実行することはできません。このようなメッセージを無視して (使用済みのテーブルを削除せず)、次のコマンドにジャンプするコマンドが必要です。

例えば:

DROP TABLE schema1.table1 ;
DROP TABLE schema1.table2 ;
DROP TABLE schema1.table3 ;
DROP TABLE schema1.table4 ;
DROP TABLE schema1.table5 ;

この例では、table1table3がビューで使用されていますが、テーブル 2、4、および 5 は使用されていません。スクリプトを実行すると、table1. 次に、その行にコメントを付けて、スクリプトを再度実行する必要があります。その後、table2は適切にドロップされ、 のエラー メッセージが再度表示されtable3ます。次に、この行にコメントを付けて、スクリプトを再度実行する必要があります。最終的に、最後の2つのテーブルが削除されます。

ポイントは、私は何百ものそのようなテーブルを使用していて、使用していないものを混ぜ合わせているということです...

4

2 に答える 2

0

実際にはplpgsqlです(コメントにplsqlを書きました)。

http://www.jaredlog.com/?p=137に例があります

関数内の「EXCEPTION WHEN UNDEFINED_TABLE THEN」を、実行しようとしたときにスローされる例外の名前に置き換えるだけで、機能するはずです。

「WHEN UNDEFINED_TABLE」を削除して、すべての例外をキャッチすることもできると思います。

この関数は、テーブル名をパラメーターとして使用します (クエリ全体ではありません)。

于 2015-11-24T10:43:24.607 に答える