sql >> データベース >  >> RDS >> PostgreSQL

一般的な単語で始まるpsql(PostgreSQLインタラクティブターミナル)のすべてのテーブルを削除するにはどうすればよいですか?

    このスクリプトは、それらすべてを削除する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なし テーブルの削除を妨げるオブジェクトを通知するエラーメッセージが表示されます。そして、あなたはそれに対処することができます。



    1. sequelizeを使用してローカルノードアプリからherokupostgresqlデータベースに接続できません

    2. OracleJDBCユーロ文字

    3. MySQLで2つの自動インクリメント列を作成するにはどうすればよいですか?

    4. MySQL:整数値と文字列フィールドとインデックスの比較