ver una tablas tabla postgres obtener nombres listar esquema desde crear consola comandos cero campos campo buscar aprender sql postgresql

una - select tablas postgresql



Obteniendo lista de comentarios de tabla en PostgreSQL (2)

Postgresql permite agregar comentarios a objetos tales como tablas. Por ejemplo, he agregado un comentario a la tabla "mytable" usando este comando SQL:

COMMENT ON TABLE mytable IS ''This is my table.'';

Mi pregunta es: si quiero usar un comando SQL para obtener todas las tablas junto con sus respectivos comentarios, ¿cómo haría esto? ¿Cuál sería la consulta adecuada para esto?

¡Gracias por adelantado! ¡Aclamaciones!


Estoy usando un alias útil (fachada) para obj_description , que es fácil de usar, porque el nombre de la tabla ( nombre de relname ) es un varchar y se puede expresar con un campo separado para el nombre del esquema , como en las tablas principales y las consultas.

CREATE FUNCTION rel_description( p_relname varchar, p_schemaname varchar DEFAULT NULL ) RETURNS text AS $f$ SELECT obj_description((CASE WHEN strpos($1, ''.'')>0 THEN $1 WHEN $2 IS NULL THEN ''public.''||$1 ELSE $2||''.''||$1 END)::regclass, ''pg_class''); $f$ LANGUAGE SQL; -- EXAMPLES OF USE: -- SELECT rel_description(''mytable''); -- SELECT rel_description(''public.mytable''); -- SELECT rel_description(''otherschema.mytable''); -- SELECT rel_description(''mytable'', ''otherschema''); -- PS: rel_description(''public.mytable'', ''otherschema'') is a syntax error, -- but not generates exception: returns the same as (''public.mytable'')

NOTAS:

  • El comentario se produce con el nombre de la tabla , no con un OID ... "¿Cómo recuperar el comentario con el nombre de la tabla ?"

    SELECCIONE obj_description (''schemaName.tableName'' :: regclass, ''pg_class'');

  • sobre obj_description con solo object_oid (ej. 393862), obj_description(393862) , está en desuso , el correcto es

    SELECT obj_description (393862, ''pg_class'');

  • Tal como lo recomienda esta respuesta : " Si desea saber qué consultas ejecuta psql cuando hace / dt + o / d + clientes, simplemente psql -E con psql -E ".

PD: gracias a @a_horse_with_no_name.


Todos los comentarios están almacenados en pg_description

Para obtener los comentarios en una tabla, necesita unirla a pg_class

Como alternativa, también puede usar la función obj_description() para recuperar esta información:

SELECT obj_description(oid) FROM pg_class WHERE relkind = ''r''

Editar

En psql, simplemente puede usar el comando /d+ para mostrar todas las tablas incluyendo sus comentarios. O use el comando /dd para mostrar todos los comentarios en el sistema