Список таблиц в схеме PostgreSQL
когда я делаю dt
в psql я получаю только список таблиц в текущей схеме (public
по умолчанию).
Как я могу получить список всех таблиц во всех схемах или конкретной схеме?
4 ответов
во всех схемах:
=> \dt *.*
в определенной схеме:
=> \dt public.*
можно использовать регулярные выражения с некоторыми ограничениями
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
продвинутые пользователи могут использовать обозначения регулярных выражений, такие как классы символов, например [0-9], чтобы соответствовать любой цифре. Все специальные символы регулярных выражений работы, как указано в разделе 9.7.3, за исключением . который берется как разделитель, как упоминалось выше, * который переводится на нотацию регулярного выражения ., ? что переводится как ., и$, который соответствует буквально. Вы можете эмулировать эти символы шаблона при необходимости, написав ? для., (Р+|) для R, или (R|) для R?. $ не требуется в качестве символа регулярного выражения, поскольку шаблон должен соответствовать всему имени, в отличие от обычной интерпретации регулярных выражений (другими словами, $ автоматически добавляется к вашему шаблону). Напишите * в начале и / или в конце, если вы не хотите шаблон для фиксации. Обратите внимание, что в двойных кавычках все специальные символы регулярного выражения теряют свои специальные значения и сопоставляются буквально. Кроме того, специальные символы регулярного выражения сопоставляются буквально в шаблонах имен операторов (т. е. аргументе \do).
Вы можете выбрать столы из information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
вместо information_schema
можно использовать pg_tables
:
select * from pg_tables where schemaname='public';
для тех, кто сталкивается с этим в будущем:
Если вы хотите увидеть список отношений Для несколько схем:
$psql mydatabase
mydatabase=# SET search_path TO public, usa; #schema examples
SET
mydatabase=# \dt
List of relations
Schema | Name | Type | Owner
--------+-----------------+-------+----------
public | counties | table | postgres
public | spatial_ref_sys | table | postgres
public | states | table | postgres
public | us_cities | table | postgres
usa | census2010 | table | postgres