Список всех таблиц в информационной схеме postgresql



Что является лучшим способом, чтобы получить список всех таблиц в information_schema Для в PostgreSQL?



чтобы уточнить: я работаю с пустой БД (я не добавил ни одной из моих собственных таблиц), но я хочу видеть каждую таблицу в структуре information_schema.

1144   7  

7 ответов:

вы должны быть в состоянии просто запустить select * from information_schema.tables чтобы получить список каждой таблицы, управляемой Postgres для конкретной базы данных.

вы также можете добавить where table_schema = 'information_schema' чтобы увидеть только таблицы в информационной схеме.

для перечисления таблиц использовать:

SELECT table_name FROM information_schema.tables WHERE table_schema='public'

Он будет только список таблиц, которые вы создаете.

\dt information_schema.

изнутри psql, должно быть хорошо.

на команда "\z" Это также хороший способ, чтобы перечислить таблицы, когда внутри интерактивной сессии psql.

например.

# psql -d mcdb -U admin -p 5555
mcdb=# /z
                           Access privileges for database "mcdb"
 Schema |              Name              |   Type   |           Access privileges
--------+--------------------------------+----------+---------------------------------------
 public | activities                     | table    |
 public | activities_id_seq              | sequence |
 public | activities_users_mapping       | table    |
[..]
 public | v_schedules_2                  | view     | {admin=arwdxt/admin,viewuser=r/admin}
 public | v_systems                      | view     |
 public | vapp_backups                   | table    |
 public | vm_client                      | table    |
 public | vm_datastore                   | table    |
 public | vmentity_hle_map               | table    |
(148 rows)

вы можете также использовать

select * from pg_tables where schemaname = 'information_schema'

В общем случае PG * таблицы позволяют вам видеть все в БД, не ограничиваясь вашими разрешениями (если у вас есть доступ к таблицам, конечно).

для частного схемы 'xxx' в postgresql:

SELECT table_name FROM information_schema.tables 
 WHERE table_schema = 'xxx' AND table_type = 'BASE TABLE'

без table_type = 'BASE TABLE', вы будете перечислять таблицы и вид

Если вы хотите быстрый и грязный-вкладыш запрос:

select * from information_schema.tables

вы можете запустить его непосредственно в инструменте запроса без необходимости открывать psql.

(другие сообщения предлагают хорошие более конкретные запросы information_schema, но как newby, я нахожу, что этот однострочный запрос помогает мне справиться с таблицей)

Comments

    Ничего не найдено.