2016-07-05 14 views
3

私はPostgresでシーケンス名のリストを取得したいと思います。オラクルでPostgresでシーケンス名のリストを取得するには?

、私が使用することができます。

select sequence_name 
from user_sequences 

しかし、Postgresの中で、私はその文を使用する場合、それは常にエラーをスロー:見つからないUSER_SEQUENCESを。

私はこれをPostgresでどうやって行うことができますか?

答えて

2

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
それとも\ds続いpsql -U username -Eとしてpsqlを実行しているしようとしています。結果を生成するために使用されたクエリも表示されます。

を使用でき
+0

私はシーケンス名を選択するために、SQLステートメントを使用して、Oracleのようにこれを取得したいです。 – liu246437

+0

@ liu246437答えを編集しました。このクエリは、あなたが探しているものに合うはずです。 – DunnoHowToCode

+0

私はあなたのメードで試してみると、ありがとう – liu246437

4

現在のユーザーではなく、 は彼によってを所有しているものにシーケンス アクセスのリストを返します
select sequence_schema, sequence_name 
from information_schema.sequences; 

あなたはあなたがpg_classpg_namespacepg_userに参加する必要があり、現在のユーザーによってを所有しているシーケンスを一覧表示したい場合は:、ユーザーは複数のスキーマ内のオブジェクト(例えば配列)所有できるのPostgresでは

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; 

ありませんちょうど "彼自身"であるため、シーケンスが作成されたスキーマもチェックする必要があります。

マニュアルの詳細:

関連する問題