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

Hvordan får man en liste over sekvensnavne i Postgres?

Du kan bruge:

select sequence_schema, sequence_name
from information_schema.sequences;

Det vil returnere en liste over sekvenser tilgængelige til den nuværende bruger, ikke dem, der ejes af ham.

Hvis du vil vise sekvenser ejet af den aktuelle bruger skal du tilmelde dig pg_class , pg_namespace og 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;

I Postgres kan en bruger eje objekter (f.eks. sekvenser) i flere skemaer, ikke kun "sin egen", så du skal også tjekke i hvilket skema sekvensen er oprettet.

Flere detaljer i manualen:



  1. 2 måder at slette duplikerede rækker i Oracle

  2. Hvordan opdaterer man tidszonen for tidsstemplerne (created_at and updated_at) administreret af Laravel Eloquent?

  3. CONVERT() fra dato/tid til strengeksempler i SQL Server

  4. Sådan drager du fordel af de nye partitioneringsfunktioner i PostgreSQL 11