2016-07-05 11 views

Antwort

2

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
Oder versuchen psql als psql -U username -E von \ds gefolgt läuft. Dies zeigt Ihnen die Abfrage, mit der das Ergebnis erzeugt wurde.

+0

Ich mag dies wie die Oracle zu bekommen, durch SQL-Anweisung der Sequenznamen zu wählen. – liu246437

+0

@ liu246437 Ich habe die Antwort bearbeitet. Diese Abfrage sollte zu dem passen, wonach Sie suchen. – DunnoHowToCode

+0

Ich versuche es durch Ihre Methode, ich bekomme es, Danke – liu246437

4

können Sie verwenden:

select sequence_schema, sequence_name 
from information_schema.sequences; 

Das wird eine Liste von Sequenzen zugänglich für den aktuellen Benutzer zurückzukehren, nicht die, die von ihm gehört.

Wenn Sie zur Liste Sequenzen wollen im Besitz vom aktuellen Benutzer Sie pg_class, pg_namespace und pg_user anschließen müssen:

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 kann einen Benutzer Objekte besitzt (zB Sequenzen) in mehrere Schema, nicht nur "sein eigenes", also müssen Sie auch überprüfen, in welchem ​​Schema die Sequenz erstellt wird.

Weitere Angaben im Handbuch:

Verwandte Themen