2017-06-07 20 views
0

私は、それぞれのクエリを実行するために、PythonでPostgreSQL DBのすべてのテーブルを反復しようとしています。私は、クエリを実行するために、それぞれのスキーマとテーブル名を取得する必要があるので、私はこのような文字列のリストを取得したいと思います: "schema.tablename"。Psycopg2ですべてのスキーマの名前を取得

私はこれを使用しましたが、テーブルの名前だけをリストしているので、何の助けにもなりません。

select relname from pg_class where relkind='r' and relname !~ '^(pg_|sql_)'; 

、任意のヘルプ感謝...感謝

私はもっと簡単な方法がなければならないと確信しているが、私はいない成功を収めて何かを探してきました!

答えて

1

あなたはpg_namespaceに対してそれに参加したい:それは上記のクエリからschema_name列を使用するためにあなたができるようsearch_pathパラメータで使用可能なテーブルにスキーマ名を追加していないこと

t=# select nspname||'.'||relname from pg_class join pg_namespace on relnamespace = pg_namespace.oid where relkind='r' and relname !~ '^(pg_|sql_)' limit 5; 
    ?column? 
------------------- 
public.s141 
public.events 
public.tg_rep_que 
public.t4 
public.menupoint 
(5 rows) 
+0

素晴らしい!非常にありがとう、これは完全に仕事をした:) –

1
select 
    relname, 
    oid::regclass as full_name, 
    relnamespace::regnamespace as schema_name 
from pg_class 
where relkind='r'; 

注意を。

関連する問題