Yanıtlar:
Tüm şemalarda:
=> \dt *.*
Belirli bir şemada:
=> \dt public.*
Bazı kısıtlamalarla düzenli ifadeler kullanmak mümkündür
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Gelişmiş kullanıcılar, herhangi bir rakamla eşleşmek için karakter sınıfları gibi normal ifade gösterimlerini kullanabilirler, örneğin [0-9]. Bölüm 9.7.3 belirtilen tüm normal ifade Özel karakterler için, çalışma
.
, yukarıda belirtildiği gibi, bir ayırıcı olarak alınır*
normal ifade gösterimde çevrilir.*
,?
çevrilir.
ve$
tam anlamıyla eşleştirilir olan. Sen yazarak ihtiyaç olarak bu desen karakterleri taklit edebilir?
için.
,(R+|)
içinR*
, ya(R|)
içinR?
.$
normal ifadelerin olağan yorumlamasından farklı olarak, desen tüm adla eşleşmesi gerektiğinden, normal ifade karakteri olarak gerekli değildir (diğer bir deyişle,$
, deseninize otomatik olarak eklenir).*
Desenin sabitlenmesini istemiyorsanız başlangıçta ve / veya sonunda yazın . Çift tırnak içinde, tüm normal ifade özel karakterlerinin özel anlamlarını yitirdiğini ve kelimenin tam anlamıyla eşlendiğini unutmayın. Ayrıca, normal ifade özel karakterleri operatör adı örüntülerinde (yani, argümanında\do
) tam anlamıyla eşleştirilir .
\dt public.user_info, public.user_scope
mi?
\dt public.a; \dt public.b;
bir satırda yapmak daha kolay .
search_path
ve bu varsayılan değerdir "$user", public.*
. Sonuç olarak, set search_path=s; \dt
şemadaki tüm tabloları listeleyecektir s
.
Tabloları aşağıdakilerden seçebilirsiniz: information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Alternatif olarak aşağıdakiler information_schema
de kullanılabilir pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
öğeleri listelememeyle ilgili bir izin sorunu bulundu public
, ancak pg_tables
yöntem iyi çalıştı. Çok teşekkürler!
Gelecekte bununla karşılaşanlar için:
Birkaç şema için ilişkilerin bir listesini görmek istiyorsanız:
$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
eşdeğerdir\dt public.*
, doğru mu?