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

PostgreSQLデータベースからロールのコメントを取得する方法

    この種の情報を取得する方法を見つける良い方法は、psqlのヘルプを確認することです。 この情報を表示するコマンドを見つけます。

    この場合、それはdg+です。 指図。

    コマンドがわかれば、psqlの内部SQLクエリの出力を有効にできます。 その情報を取得する方法を見つけるためのツール。これは、psqlを開始することによって行われます。 -Eを使用する パラメータ。

    これを行うと、次のように表示されます:

    psql (9.4.5)
    Type "help" for help.
    
    postgres=# \dg+
    ********* QUERY **********
    SELECT r.rolname, r.rolsuper, r.rolinherit,
      r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
      r.rolconnlimit, r.rolvaliduntil,
      ARRAY(SELECT b.rolname
            FROM pg_catalog.pg_auth_members m
            JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
            WHERE m.member = r.oid) as memberof
    , pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
    , r.rolreplication
    FROM pg_catalog.pg_roles r
    ORDER BY 1;
    **************************
    
                                    List of roles
       Role name   |            Attributes             | Member of | Description
    ---------------+-----------------------------------+-----------+-----------------------
     someone       |                                   | {}        | THIS IS A ROLE COMMENT
    

    いくつかだけが必要かどうかは、質問からは明らかではありません。 コメントを表示するメソッド、次にdg+ おそらく十分です。それ以外の場合は、psqlで使用されるSQLクエリを調整できます 必要に応じて、例:

    SELECT pg_catalog.shobj_description(r.oid, 'pg_authid') AS description
    FROM pg_catalog.pg_roles r
    where r.rolname = 'someone';
    

    注:\duと\dgはpsqlの同じコマンドです。どちらも歴史的な理由で 維持されています。 。



    1. MYSQL-DESCの順序でIDで並べ替え、Xでグループ化

    2. PostgreSQLのINSERT...ON CONFLICT(UPSERT)機能をflask_sqlalchemyで使用するにはどうすればよいですか?

    3. 重複した部分文字列の削除

    4. Oracleで関数を呼び出す方法