U kunt het volgende gebruiken:
select sequence_schema, sequence_name
from information_schema.sequences;
Dat geeft een lijst met reeksen terug die toegankelijk zijn aan de huidige gebruiker, niet degenen die eigendom zijn door hem.
Als u sequenties wilt weergeven die eigendom zijn door de huidige gebruiker moet je lid worden van pg_class
, pg_namespace
en 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 kan een gebruiker objecten (bijv. reeksen) in meerdere schema's bezitten, niet alleen "zijn eigen", dus u moet ook controleren in welk schema de reeks is gemaakt.
Meer details in de handleiding:
- https://www.postgresql.org/docs/ current/static/infoschema-sequences.html
- https://www.postgresql.org/ docs/current/static/catalog-pg-class.html