sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur får man en lista över sekvensnamn i Postgres?

Du kan använda:

select sequence_schema, sequence_name
from information_schema.sequences;

Det kommer att returnera en lista med sekvenser som är tillgängliga till den nuvarande användaren, inte de som ägs av honom.

Om du vill lista sekvenser som ägs av den aktuella användaren måste du gå med i pg_class , pg_namespace och 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 användare äga objekt (t.ex. sekvenser) i flera scheman, inte bara "hans egna", så du måste också kontrollera i vilket schema sekvensen skapas.

Mer information i manualen:



  1. formatera mysql-data för utmatning till en tabell

  2. odoo12 databas backup ingen ägare?

  3. Hur man konverterar ett datum-/tidsvärde till en sträng i SQL Server med CONVERT()

  4. MySQL-gruppera efter intervall inom ett datumintervall