PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come ottenere l'elenco dei nomi delle sequenze in Postgres?

Puoi usare:

select sequence_schema, sequence_name
from information_schema.sequences;

Ciò restituirà un elenco di sequenze accessibili all'utente corrente, non a quelli di proprietà da lui.

Se vuoi elencare le sequenze di proprietà dall'utente corrente devi unirti a 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;

In Postgres un utente può possedere oggetti (ad es. sequenze) in più schemi, non solo "suoi", quindi devi anche controllare in quale schema è stata creata la sequenza.

Maggiori dettagli nel manuale: