回答:
select * from information_schema.tables
特定のデータベースについてPostgresによって管理されているすべてのテーブルのリストを取得するために実行できるはずです。
を追加しwhere table_schema = 'information_schema'
て、情報スキーマのテーブルのみを表示することもできます。
テーブルをリストするには、以下を使用します。
SELECT table_name FROM information_schema.tables WHERE table_schema='public'
作成したテーブルのみがリストされます。
\dt information_schema.
psql内からは問題ありません。
「\ Z」コマンドはまた、対話型psqlのセッション内のリストのテーブルに良い方法です。
例えば。
# psql -d mcdb -U admin -p 5555
mcdb=# /z
Access privileges for database "mcdb"
Schema | Name | Type | Access privileges
--------+--------------------------------+----------+---------------------------------------
public | activities | table |
public | activities_id_seq | sequence |
public | activities_users_mapping | table |
[..]
public | v_schedules_2 | view | {admin=arwdxt/admin,viewuser=r/admin}
public | v_systems | view |
public | vapp_backups | table |
public | vm_client | table |
public | vm_datastore | table |
public | vmentity_hle_map | table |
(148 rows)
'xxx'
postgresqlのプライベートスキーマの場合:
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'xxx' AND table_type = 'BASE TABLE'
なしではtable_type = 'BASE TABLE'
、テーブルとビューをリストします
1. information_schema.tablesからすべてのテーブルとビューを取得し、information_schemaとpg_catalogのテーブルとビューを含めます。
select * from information_schema.tables
2.特定のスキーマに属するテーブルとビューを取得する
select * from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog')
3.テーブルのみを取得する(ほぼ\ dt)
select * from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog') and
table_type = 'BASE TABLE'
where table_schema not in ('information_schema', 'pg_catalog')
は何ですか?