Bạn có thể sử dụng:
select sequence_schema, sequence_name
from information_schema.sequences;
Điều đó sẽ trả về danh sách các chuỗi có thể truy cập cho người dùng hiện tại, không phải cho người dùng sở hữu bởi anh ấy.
Nếu bạn muốn liệt kê các chuỗi được sở hữu bởi người dùng hiện tại, bạn cần tham gia pg_class
, pg_namespace
và pg_user
:
select n.nspname as sequence_schema,
c.relname as sequence_name,
u.usename as owner
from pg_class c
join pg_namespace n on n.oid = c.relnamespace
join pg_user u on u.usesysid = c.relowner
where c.relkind = 'S'
and u.usename = current_user;
Trong Postgres, người dùng có thể sở hữu các đối tượng (ví dụ:chuỗi) trong nhiều lược đồ, không chỉ "của riêng mình", vì vậy bạn cũng cần kiểm tra xem chuỗi được tạo trong lược đồ nào.
Thêm chi tiết trong sách hướng dẫn:
- https://www.postgresql.org/docs/ current / static / infoschema-sequences.html
- https://www.postgresql.org/ docs / current / static / catalog-pg-class.html