PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir la liste des noms de séquence dans Postgres ?

Vous pouvez utiliser :

select sequence_schema, sequence_name
from information_schema.sequences;

Cela renverra une liste de séquences accessibles à l'utilisateur actuel, pas à ceux possédés par lui.

Si vous souhaitez répertorier les séquences possédées par l'utilisateur actuel, vous devez rejoindre pg_class , pg_namespace et 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;

Dans Postgres, un utilisateur peut posséder des objets (par exemple des séquences) dans plusieurs schémas, pas seulement "le sien", vous devez donc également vérifier dans quel schéma la séquence est créée.

Plus de détails dans le manuel :