Есть ли какой-либо запрос для списка всех таблиц в моей базе данных Postgres.
Я опробовал один запрос:
SELECT table_name FROM information_schema.tables
WHERE table_schema='public'
Но этот запрос также возвращает представления.
Как я могу получить только имена таблиц, а не представления?
Какой бот этот запрос (на основе описания из руководство)?
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public'
AND table_type='BASE TABLE';
Если вам нужен список базы данных
SELECT datname FROM pg_database WHERE datistemplate = false;
Если вы хотите, чтобы список таблиц из текущей установки pg всех баз данных
SELECT table_schema,table_name FROM information_schema.tables
ORDER BY table_schema,table_name;
Откройте терминал postgres с нужной таблицей данных:
psql dbname (run this line in a terminal)
тогда запустите эту команду в среде postgres
\d
Это будет описывать все таблицы по имени. В основном список таблиц по имени возрастает.
Затем вы можете попробовать это, чтобы описать таблицу по полям:
\d tablename.
Надеюсь, что это поможет.
\d
для перечисления только всех таблиц, без индекса, без seq, ...?
\dt
не для этого?
Как насчет дать \dt
в psql
? См. Https://www.postgresql.org/docs/current/static/app-psql.html.
select
relname as table
from
pg_stat_user_tables
where schemaname = 'public'
select
tablename as table
from
pg_tables
where schemaname = 'public'
pg_stat_user_tables
может не заполняться, если track_activities
отключен. Использование «официального» API, такого как pg_tables
или information_schema.table
является гораздо лучшим выбором.
Попробуй это:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public' AND table_type='BASE TABLE'
этот работает!