sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo verificar si existe un esquema público de PostgreSQL?

La información de information_schema.schemata depende del rol con el que esté conectado, por lo que no es realmente la vista correcta para consultar para descubrir esquemas en general.

El doc en information_schema.schemata en 9.3 dice:

Sin embargo, no está del todo claro (al menos para mí) solo con esa oración, por qué no puede ver public .

En una publicación de la lista de correo, Tom Lane tiene una explicación que va un poco más allá:
Ver http://www.postgresql.org/message-id/[email protected]

Su conclusión:

que se ve exactamente como el problema en esta pregunta.

En pocas palabras:use pg_namespace en lugar de information_schema.schemata

Esto se modificó en la versión 9.4 para ajustarse a lo que esperan los usuarios. El documento actual dice:

USAGE El privilegio en un esquema ahora es suficiente para obtenerlo desde esta vista.