このスクリプトは、それらすべてを削除するDDLコマンドを生成します:
SELECT 'DROP TABLE ' || t.oid::regclass || ';'
FROM pg_class t
-- JOIN pg_namespace n ON n.oid = t.relnamespace -- to select by schema
WHERE t.relkind = 'r'
AND t.relname ~~ E'doors\_%' -- enter search term for table here
-- AND n.nspname ~~ '%myschema%' -- optionally select by schema(s), too
ORDER BY 1;
キャストt.oid::regclass
大文字と小文字が混在する識別子、予約語、またはテーブル名の特殊文字に対しても構文が機能するようになります。また、SQLインジェクションを防ぎ、必要に応じてスキーマ名を付加します。 マニュアルのオブジェクト識別子タイプ
の詳細 。
ドロップを自動化することもできますが、賢明ではありません 削除する前に実際に削除したものを確認しないでください。
CASCADE
を追加できます。
オブジェクトに依存するDROPへのすべてのステートメント(外部キーの表示と参照)。しかし、繰り返しになりますが、それは賢明ではありません あなたが何をしているのかよく知らない限り。外部キーの制約は大きな損失ではありませんが、これによりすべての依存ビューも完全に削除されます。 CASCADE
なし テーブルの削除を妨げるオブジェクトを通知するエラーメッセージが表示されます。そして、あなたはそれに対処することができます。