Postgresql – Query to get all schemas in a database in PostgreSQL

postgresqlpsqlqueryschema

I'm not looking for the command \dn of psql, but instead of a query in SQL language that selects all schemas in a given database.

Best Answer

select * from information_schema.schemata;

Have a look at Postgres Docs:

The view schemata contains all schemas in the current database that the current user has access to (by way of being the owner or having some privilege).

|                          Name | Data Type      | Description                                                                        |
|------------------------------:|----------------|------------------------------------------------------------------------------------|
| catalog_name                  | sql_identifier | Name of the database that the schema is contained in (always the current database) |
| schema_name                   | sql_identifier | Name of the schema                                                                 |
| schema_owner                  | sql_identifier | Name of the owner of the schema                                                    |
| default_character_set_catalog | sql_identifier | Applies to a feature not available in PostgreSQL                                   |
| default_character_set_schema  | sql_identifier | Applies to a feature not available in PostgreSQL                                   |
| default_character_set_name    | sql_identifier | Applies to a feature not available in PostgreSQL                                   |
| sql_path                      | character_data | Applies to a feature not available in PostgreSQL                                   |