Postgres 8.4データベースにpgAdminを使用していますが、現在使用されている一時テーブルのリストはどこにありますか(任意のテーブル/スキーマなど?)。私はそれを見つけることができる場所がなければならないと思います。
それらはカタログオブジェクトテーブルにもビューにも存在しません、他の提案はありますか?
Postgres 8.4データベースにpgAdminを使用していますが、現在使用されている一時テーブルのリストはどこにありますか(任意のテーブル/スキーマなど?)。私はそれを見つけることができる場所がなければならないと思います。
それらはカタログオブジェクトテーブルにもビューにも存在しません、他の提案はありますか?
Postgresは「pg_temp_#」という名前の一時テーブルの一時スキーマを作成します。これはpsqlで確認できます...
create temp table mytemptable(name varchar);
select c.relname
from pg_namespace n
join pg_class c on n.oid=c.relnamespace
where n.nspname='pg_temp_1';
psqlで「\dn」を実行しているスキーマを一覧表示できます。
お役に立てば幸いです。
一時テーブルpg_temp_{№}
は、pgAdminUIでデフォルトで非表示になっている一時スキーマに存在します。
pgAdmin(少なくともpgAdmin4)では、設定ペインを開いてこの設定をオンにすることができます。
Display->Show system objects?
にTrue
これにより、作成した一時テーブルとともに非表示のスキーマが表示されます。
PSプリファレンス更新スキーマツリーを変更した後
SELECT
n.nspname as SchemaName
,c.relname as RelationName
,CASE c.relkind
WHEN 'r' THEN 'table'
WHEN 'v' THEN 'view'
WHEN 'i' THEN 'index'
WHEN 'S' THEN 'sequence'
WHEN 's' THEN 'special'
END as RelationType
,pg_catalog.pg_get_userbyid(c.relowner) as RelationOwner
,pg_size_pretty(pg_relation_size(n.nspname ||'.'|| c.relname)) as RelationSize
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n
ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','s')
AND (n.nspname !~ '^pg_toast' and nspname like 'pg_temp%')
ORDER BY pg_relation_size(n.nspname ||'.'|| c.relname) DESC
すべての一時テーブルの出力が表示されます。
schemaname | relationname | relationtype | relationowner | relationsize
------------+--------------+--------------+---------------+--------------
pg_temp_63 | temp_sl_4 | table | power_bi_cr | 2355 MB
pg_temp_63 | temp_sl_3 | table | power_bi_cr | 1342 MB
pg_temp_63 | temp_sl_2 | table | power_bi_cr | 1239 MB
pg_temp_63 | temp_sl | table | power_bi_cr | 1216 MB
pg_temp_63 | temp_sl_gr | table | power_bi_cr | 521 MB
pg_temp_63 | temp_ftlo | table | power_bi_cr | 457 MB
pg_temp_63 | temp_th3 | table | power_bi_cr | 123 MB
pg_temp_63 | temp_th | table | power_bi_cr | 79 MB
pg_temp_63 | temp_th2 | table | power_bi_cr | 17 MB
(9 rows)