Câu trả lời:
Khi sử dụng psql
dòng lệnh, bạn có thể liệt kê tất cả các lược đồ bằng lệnh \dn
.
\dn
danh sách đó , trái ngược với bảng \dt
liệt kê?
\dt
liệt kê các bảng cho lược đồ công cộng. Để hiển thị các bảng của tất cả các lược đồ sử dụng \dt *.*
và cho một lược đồ cụ thể sử dụng \dt schema_name.*
.
Kết nối với lệnh psql -> psql --u {userName} {DBName} sau đó bạn có thể nhập lệnh bên dưới để kiểm tra có bao nhiêu lược đồ có trong DB
DBName=# \dn
Khác, bạn có thể kiểm tra cú pháp bằng các bước dưới đây một cách dễ dàng-
Sau khi kết nối DB, nhấn
DBName=# help
Bạn sẽ nhận được các tùy chọn dưới đây:
Bạn đang sử dụng psql, giao diện dòng lệnh cho PostgreSQL.
Nhập: \ bản quyền cho các điều khoản phân phối
\ h để được trợ giúp với các lệnh SQL
\? để được trợ giúp với các lệnh psql
\ g hoặc chấm dứt bằng dấu chấm phẩy để thực hiện truy vấn
\ q để thoát
Sau đó nhấn
DBName=# \?
Bạn sẽ nhận được tất cả các tùy chọn rất dễ dàng.
Bắt đầu trên postgres 9.3, Một mẹo bạn có thể sử dụng trong postgres để có được sql chính xác của lệnh thông tin (chẳng hạn như \ d, \ du, \ dp, v.v.) trong psql là sử dụng giao dịch. Đây là cách lừa. Mở một phiên postgres, sau đó nhập lệnh của bạn:
begin;
\dn+
Trong khi giao dịch vẫn đang chạy, hãy mở một phiên postgres khác và truy vấn pg_stat_activity và bạn có thể nhận được sql chính xác.
postgres=# select query from pg_stat_activity ;
query
-----------------------------------------------------------------------
SELECT n.nspname AS "Name", +
pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner", +
pg_catalog.array_to_string(n.nspacl, E'\n') AS "Access privileges",+
pg_catalog.obj_description(n.oid, 'pg_namespace') AS "Description" +
FROM pg_catalog.pg_namespace n +
WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema' +
ORDER BY 1;
\set ECHO_HIDDEN on
psql -E