PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como obter a lista de nomes de sequência no Postgres?


Você pode usar:
select sequence_schema, sequence_name
from information_schema.sequences;

Isso retornará uma lista de sequências acessíveis para o usuário atual, não para os de propriedade por ele.

Se você deseja listar sequências de propriedade pelo usuário atual, você precisa ingressar em pg_class , pg_namespace e 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;

No Postgres, um usuário pode possuir objetos (por exemplo, sequências) em vários esquemas, não apenas "seu próprio", então você também precisa verificar em qual esquema a sequência foi criada.

Mais detalhes no manual: