Postgres: существует ли запрос для возврата таблиц, принадлежащих данному пользователю? - PullRequest
2 голосов
/ 15 апреля 2011

Мне нужен запрос (не такая команда, как \ dn или \ dt или еще что-нибудь, поскольку я не запускаю его из командной строки), который позволит мне указать имя пользователя и получить все таблицы, связанные с этим пользователем (ив идеале, сколько дискового пространства он использует и другие подробности).

Существует ли такая команда?Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Это даст имя таблицы и ее владельца, а также идентификатор пользователя

SELECT pgc.relname, pgc.relowner, pgs.usename 
FROM pg_class pgc JOIN pg_shadow pgs 
ON pgc.relowner = pgs.usesysid;
1 голос
/ 15 апреля 2011

Вы можете найти такую ​​информацию в каталоге . Каталог представляет собой набор таблиц, содержащих метаданные о работающем экземпляре Postgres. Поэтому это легко сделать запрос с SQL. Чтобы найти все таблицы, принадлежащие конкретному пользователю, вы можете запросить pg_tables. Для размеров вы, вероятно, должны присоединиться pg_class.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...