Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] Listar schemas

Estas en el tema de Listar schemas en el foro de PostgreSQL en Foros del Web. Hola a todos, Estoy viendo como listar los schemas creados, navegando en la web encontré la siguiente consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT ...
  #1 (permalink)  
Antiguo 15/04/2015, 10:27
 
Fecha de Ingreso: diciembre-2014
Mensajes: 25
Antigüedad: 5 años, 10 meses
Puntos: 0
Listar schemas

Hola a todos,

Estoy viendo como listar los schemas creados, navegando en la web encontré la siguiente consulta:

Código SQL:
Ver original
  1. SELECT schema_name AS "Nombre",
  2.        schema_owner AS "Propietario"
  3. FROM information_schema.schemata
  4. WHERE schema_name <> 'information_schema' -- exclude 'system' schemata
  5.   AND schema_name !~ E'^pg_'              -- exclude more 'system' (pg-specific)
[/HTML]

Pero tengo estas dudas:

1. Como le puedo agregar los campos OID y comment a la consulta.

2. Se puede hacer una consulta general donde se puedan listar todos los schemas del servidor con un campo para el nombre de la base de datos para poder diferenciarlos.

Gracias
  #2 (permalink)  
Antiguo 15/04/2015, 10:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 12 años, 10 meses
Puntos: 2656
Respuesta: Listar schemas

Esa consulta parece más de MySQL que de PosgreSQL.

Mira esto: http://www.postgresql.org/docs/curre...-schemata.html

Veo por otro post anterior tuyo que stás constantemente tratando de acceder al "coment", pero no veo en el manual oficial que alguna de esas tablas contenga ese campo... Sí sé que existen en Oracle y MySQL, pero ¿estás seguro de que existe en PostgreSQL?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/04/2015, 14:31
 
Fecha de Ingreso: diciembre-2014
Mensajes: 25
Antigüedad: 5 años, 10 meses
Puntos: 0
Respuesta: Listar schemas

Recién me inicio en lo que es PostgreSQL y estuve viendo que para la creación de objetos se puede agregar un comentario, como por ejemplo en el esquema:
Código SQL:
Ver original
  1. CREATE SCHEMA nombre_esquema
  2.     [ AUTHORIZATION nombre_usuario ]
  3.  
  4. COMMENT ON SCHEMA nombre_esquema
  5.   IS 'comentario'

Si bien este comentario lo puedo ver desde el pgAdmin al momento de seleccionar el esquema (propiedades), me nació la duda de como poder verlo desde una sentencia sql, por ese motivo envié mis dudas:

1. Como puedo agregar los campos OID y comment a la consulta.

Código SQL:
Ver original
  1. SELECT catalog_name AS "Base de Datos",schema_name AS "Nombre",
  2.        schema_owner AS "Propietario"
  3. FROM information_schema.schemata
  4. WHERE schema_name <> 'information_schema' -- exclude 'system' schemata
  5.   AND schema_name !~ E'^pg_'              -- exclude more 'system' (pg-specific)

2. Se puede hacer una consulta general donde se puedan listar todos los schemas del servidor con un campo para el nombre de la base de datos para poder diferenciarlos.

Gracias
  #4 (permalink)  
Antiguo 16/04/2015, 07:51
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 11 años, 8 meses
Puntos: 360
Respuesta: Listar schemas

Para ver los comentarios de los esquemas, encontré esta consulta:

Código SQL:
Ver original
  1. SELECT
  2. CASE
  3.     WHEN nspname LIKE E'pg\_temp\_%' THEN 1
  4.     WHEN (nspname LIKE E'pg\_%') THEN 0  
  5.     ELSE 3
  6. END AS nsptyp, nsp.nspname, nsp.oid, pg_get_userbyid(nspowner)
  7.     AS namespaceowner,
  8.     nspacl, description,  
  9.     has_schema_privilege(nsp.oid, 'CREATE') AS cancreate
  10. FROM pg_namespace nsp
  11. LEFT OUTER JOIN pg_description des ON des.objoid=nsp.oid  
  12. WHERE NOT ((nspname = 'pg_catalog' AND EXISTS
  13. (SELECT 1 FROM pg_class
  14.     WHERE relname = 'pg_class'
  15.     AND relnamespace = nsp.oid LIMIT 1)) OR  
  16. (nspname = 'information_schema' AND
  17.     EXISTS (SELECT 1 FROM pg_class
  18.             WHERE relname = 'tables'
  19.             AND relnamespace = nsp.oid LIMIT 1)) OR  
  20. (nspname LIKE '_%' AND
  21.     EXISTS (SELECT 1 FROM pg_proc
  22.             WHERE proname='slonyversion'
  23.             AND pronamespace = nsp.oid LIMIT 1)) OR  
  24. (nspname = 'dbo' AND
  25.     EXISTS (SELECT 1 FROM pg_class
  26.             WHERE relname = 'systables'
  27.             AND relnamespace = nsp.oid LIMIT 1)) OR  
  28. (nspname = 'sys' AND
  29.     EXISTS (SELECT 1 FROM pg_class
  30.             WHERE relname = 'all_tables'
  31.             AND relnamespace = nsp.oid LIMIT 1))
  32. )
  33. AND nspname NOT LIKE E'pg\_temp\_%'
  34. AND nspname NOT LIKE E'pg\_toast_temp\_%'
  35. ORDER BY 1, nspname

Si te fijas, la información de los esquemas se almacena en una tabla llamada pg_namespace y los comentarios en su mayoria están en pg_description.

Ya es cuestion de empezar a entender a fondo la arquitectura que maneja postgresql para obtener este tipo de reportes.


Fuente: http://golden13.blogspot.com/2012/08...n-about_7.html
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 23/04/2015, 12:02
 
Fecha de Ingreso: diciembre-2014
Mensajes: 25
Antigüedad: 5 años, 10 meses
Puntos: 0
Respuesta: Listar schemas

Gracias Huesos52, muy buena tu respuesta.

Etiquetas: campo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:41.