sql >> Databáze >  >> RDS >> PostgreSQL

Jak získat komentář role z databáze PostgreSQL

Dobrým způsobem, jak zjistit, jak získat tento druh informací, je zkontrolovat nápovědu pro psql a najděte příkaz, který by tyto informace zobrazil.

V tomto případě je to dg+ příkaz.

Jakmile znáte příkaz, můžete povolit tisk interních SQL dotazů psql nástroj, který zjistí, jak tyto informace získává. To se provede spuštěním psql pomocí -E parametr.

Pokud to uděláte, uvidíte:

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

Z vaší otázky není jasné, zda chcete jen nějaké způsob, jak zobrazit komentář, pak dg+ je asi dost. Jinak můžete upravit dotaz SQL, který používá psql podle vašich potřeb, např.:

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

Poznámka:\du a \dg jsou stejné příkazy v psql. Oba jsou udržovány z historických důvodů .



  1. Jaký je dobrý návrh databáze (schéma) pro databázi docházky?

  2. MySQL:Získejte součet v posledním řádku výsledku MySql

  3. Jak používat listagg s querydsl?

  4. jak se dotazovat many-to-many?