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 :
- https://www.postgresql.org/docs/ current/static/infoschema-sequences.html
- https://www.postgresql.org/ docs/current/static/catalog-pg-class.html