Ketika saya melakukan \dt
dalam psql saya hanya mendapatkan daftar tabel dalam skema saat ini ( public
secara default).
Bagaimana saya bisa mendapatkan daftar semua tabel di semua skema atau skema tertentu?
sumber
Ketika saya melakukan \dt
dalam psql saya hanya mendapatkan daftar tabel dalam skema saat ini ( public
secara default).
Bagaimana saya bisa mendapatkan daftar semua tabel di semua skema atau skema tertentu?
Dalam semua skema:
=> \dt *.*
Dalam skema tertentu:
=> \dt public.*
Dimungkinkan untuk menggunakan ekspresi reguler dengan beberapa batasan
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Pengguna mahir dapat menggunakan notasi ekspresi reguler seperti kelas karakter, misalnya [0-9] untuk mencocokkan digit mana pun. Semua karakter khusus ekspresi reguler berfungsi sebagaimana ditentukan dalam Bagian 9.7.3, kecuali
.
yang diambil sebagai pemisah seperti yang disebutkan di atas,*
yang diterjemahkan ke notasi ekspresi reguler.*
,?
yang diterjemahkan ke.
, dan$
yang dicocokkan secara harfiah. Anda dapat meniru karakter pola ini saat dibutuhkan dengan menulis?
untuk.
,(R+|)
untukR*
, atau(R|)
untukR?
.$
tidak diperlukan sebagai karakter ekspresi reguler karena polanya harus cocok dengan seluruh nama, tidak seperti interpretasi biasa dari ekspresi reguler (dengan kata lain,$
secara otomatis ditambahkan ke pola Anda). Tuliskan*
di awal dan / atau akhir jika Anda tidak ingin pola itu berlabuh. Perhatikan bahwa dalam tanda kutip ganda, semua karakter khusus ekspresi reguler kehilangan makna khusus mereka dan dicocokkan secara harfiah. Juga, ekspresi reguler karakter khusus dicocokkan secara harfiah dalam pola nama operator (yaitu, argumen dari\do
).
\dt
iya\dt public.*
kan?\dt public.user_info, public.user_scope
?\dt public.a; \dt public.b;
satu baris.search_path
, dan yang default untuk"$user", public.*
. Akibatnya,set search_path=s; \dt
akan daftar semua tabel dalam skemas
.Anda dapat memilih tabel dari
information_schema
sumber
Alternatifnya
information_schema
adalah mungkin untuk menggunakanpg_tables
:sumber
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
tidak mencantumkan item daripublic
skema, tetapipg_tables
metode ini berfungsi dengan baik. Terimakasih banyak!Bagi mereka yang menemukan ini di masa depan:
Jika Anda ingin melihat daftar hubungan untuk beberapa skema:
sumber