Відповіді:
Що стосується цього запиту (на основі опису з посібника )?
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)
потім запустіть цю команду в середовищі постгресів
\d
Це опише всі таблиці за назвою. В основному це список таблиць за прізвищем за зростанням.
Потім ви можете спробувати це описати таблицю за полями:
\d tablename.
Сподіваюся, це допомагає.
\d
можливість перелічити лише всі таблиці, без індексу, без послідовності, ...?
\dt
для цього немає?
Спробуйте це:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public' AND table_type='BASE TABLE'
ця працює!
table_type='BASE TABLE'
. Можливо, я помиляюся, ви можете, будь ласка, докладно пояснити?
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
є набагато кращим вибором.
Як про надання тільки \dt
в psql
? Дивіться https://www.postgresql.org/docs/current/static/app-psql.html .
SELECT table_name
FROM information_schema.tables
WHERE table_type='BASE TABLE'
AND table_schema='public';
Для MySQL вам знадобиться table_schema = 'dbName', а для MSSQL видаліть цю умову.
Зауважте, що "показано лише ті таблиці та представлення, до яких має доступ поточний користувач". Крім того, якщо у вас є доступ до багатьох баз даних і хочете обмежити результат певною базою даних, ви можете досягти цього, додавши умову AND table_catalog = 'yourDatabase' (в PostgreSQL).
Якщо ви також хочете позбутися заголовка із зазначенням назв рядків та нижнього колонтитулу, що показує кількість рядків, ви можете або запустити psql з параметром командного рядка -t (скорочено лише для --tuples), або ви можете переключити налаштування в psql's командний рядок на \ t (скорочено для \ pset tuples_only). Це може бути корисним, наприклад, для передачі даних до іншої команди з командою \ g [|].