Відповіді:
У всіх схемах:
=> \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|)
дляR?
.$
не потрібен як символ регулярного виразу, оскільки шаблон повинен відповідати всьому імені, на відміну від звичайної інтерпретації регулярних виразів (іншими словами,$
автоматично додається до вашого шаблону). Напишіть*
на початку та / або в кінці, якщо ви не хочете, щоб шаблон був прикріплений. Зауважте, що в рамках подвійних лапок всі спеціальні символи регулярного вираження втрачають своє особливе значення і узгоджуються буквально. Також спеціальні символи регулярного виразу узгоджуються буквально у шаблонах імен операторів (тобто аргументі\do
).
\dt public.user_info, public.user_scope
?
\dt public.a; \dt public.b;
на одній лінії.
search_path
, і що за замовчуванням "$user", public.*
. Отже, set search_path=s; \dt
збирається перерахувати всі таблиці в схемі s
.
Ви можете вибрати таблиці information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Альтернативно information_schema
можна використовувати pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
не відображає елементи public
схеми, але pg_tables
метод працює добре. Дуже дякую!
Для тих, хто переживає це в майбутньому:
Якщо ви хочете переглянути список відносин для кількох схем:
$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
\dt
це рівнозначно\dt public.*
, я прав?