sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo obtener una lista de nombres de secuencia en Postgres?

Puedes usar:

select sequence_schema, sequence_name
from information_schema.sequences;

Eso devolverá una lista de secuencias accesibles al usuario actual, no a los propiedad por él.

Si desea listar secuencias propiedad por el usuario actual, debe unirse a pg_class , pg_namespace y 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;

En Postgres, un usuario puede poseer objetos (por ejemplo, secuencias) en múltiples esquemas, no solo "los suyos", por lo que también debe verificar en qué esquema se crea la secuencia.

Más detalles en el manual: