sql >> Databáze >  >> RDS >> PostgreSQL

Jak získat seznam názvů sekvencí v Postgresu?

Můžete použít:

select sequence_schema, sequence_name
from information_schema.sequences;

To vrátí seznam sekvencí dostupných aktuálnímu uživateli, nikoli těm, které vlastní od něj.

Pokud chcete uvést sekvence vlastněné od aktuálního uživatele se musíte připojit k pg_class , pg_namespace a 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;

V Postgresu může uživatel vlastnit objekty (např. sekvence) ve více schématech, nejen ve „svých vlastních“, takže musíte také zkontrolovat, ve kterém schématu je sekvence vytvořena.

Více podrobností v návodu:



  1. Funkce IIf() vs. Příkaz IIf().

  2. Jak zapnout výstup serveru v DataGrip

  3. Provádění nativního dotazu pomocí Hibernate 4.1

  4. Jak mohu bezpečně uložit heslo v MySQL a ověřit se pro externí služby