sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan får du rollens kommentar fra PostgreSQL-databasen

En god måde at finde ud af, hvordan man henter denne form for information er at tjekke hjælpen til psql og find den kommando, der viser denne information.

I dette tilfælde er det dg+ kommando.

Når du kender kommandoen, kan du aktivere udskrivning af de interne SQL-forespørgsler i psql værktøj til at finde ud af, hvordan den henter disse oplysninger. Dette gøres ved at starte psql ved hjælp af -E parameter.

Hvis du gør det, vil du se:

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

Det fremgår ikke klart af dit spørgsmål, om du bare vil have nogle metode til at se kommentaren, og derefter dg+ er nok nok. Ellers kan du justere SQL-forespørgslen, der bruges af psql til dine behov, f.eks.:

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

Bemærk:\du og \dg er den samme kommando i psql. Begge opretholdes af historiske årsager .



  1. Hvordan fjerner man dårlige tegn, der ikke er egnede til utf8-kodning i MySQL?

  2. Kompilering af libpq med iOS SDK 4.2

  3. ude af stand til at kopiere database ved hjælp af SQLiteAssetHelper-klassen

  4. Php simpelt login script hvid side