Câu trả lời:
Trong tất cả các lược đồ:
=> \dt *.*
Trong một lược đồ cụ thể:
=> \dt public.*
Có thể sử dụng biểu thức chính quy với một số hạn chế
\dt (public|s).(s|t)
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | s | table | cpn
public | t | table | cpn
s | t | table | cpn
Người dùng nâng cao có thể sử dụng các ký hiệu biểu thức chính quy, chẳng hạn như các lớp ký tự, ví dụ [0-9] để khớp với bất kỳ chữ số nào. Tất cả các ký tự đặc biệt của biểu thức chính quy hoạt động như được chỉ định trong Mục 9.7.3, ngoại trừ
.
được lấy làm dấu phân cách như đã đề cập ở trên,*
được dịch sang ký hiệu biểu thức chính quy.*
,?
được dịch sang.
và$
được khớp theo nghĩa đen. Bạn có thể mô phỏng các ký tự mẫu này theo nhu cầu bằng cách viết?
cho.
,(R+|)
choR*
hoặc(R|)
choR?
.$
không cần thiết như một ký tự biểu thức chính quy vì mẫu phải khớp với toàn bộ tên, không giống như cách giải thích thông thường của các biểu thức thông thường (nói cách khác,$
được tự động gắn vào mẫu của bạn). Viết*
ở đầu và / hoặc kết thúc nếu bạn không muốn mô hình được neo. Lưu ý rằng trong dấu ngoặc kép, tất cả các ký tự đặc biệt biểu thức chính quy đều mất ý nghĩa đặc biệt và được khớp theo nghĩa đen. Ngoài ra, các ký tự đặc biệt biểu thức chính quy được khớp theo nghĩa đen trong các mẫu tên toán tử (nghĩa là đối số của\do
).
\dt public.user_info, public.user_scope
?
\dt public.a; \dt public.b;
trên một dòng.
search_path
, và rằng mặc định "$user", public.*
. Do đó, set search_path=s; \dt
sẽ liệt kê tất cả các bảng trong lược đồ s
.
Bạn có thể chọn các bảng từ information_schema
SELECT * FROM information_schema.tables
WHERE table_schema = 'public'
Ngoài ra, information_schema
nó có thể được sử dụng pg_tables
:
select * from pg_tables where schemaname='public';
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
information_schema
không liệt kê các mục từ public
lược đồ, nhưng pg_tables
phương thức này hoạt động tốt. Cảm ơn nhiều!
Đối với những người đi ngang qua đây trong tương lai:
Nếu bạn muốn xem danh sách các mối quan hệ cho một số lược đồ:
$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
là tương đương với\dt public.*
, phải không?