回答:
何(の記述に基づいて、このクエリ試合マニュアル)?
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public'
AND table_type='BASE TABLE';
データベースのリストが必要な場合
SELECT datname FROM pg_database WHERE datistemplate = false;
すべてのデータベースの現在のpgインストールからのテーブルのリストが必要な場合
SELECT table_schema,table_name FROM information_schema.tables
ORDER BY table_schema,table_name;
必要なデータベースを使用してpostgresターミナルを開きます。
psql dbname (run this line in a terminal)
次に、このコマンドをpostgres環境で実行します
\d
これはすべてのテーブルを名前で説明します。基本的に名前の昇順によるテーブルのリスト。
次に、これを試して、フィールドごとにテーブルを記述できます。
\d tablename.
お役に立てれば。
\d
をリストするオプション があり、インデックスもシーケンスもありません...?
\dt
ませんか?
これを試して:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public' AND table_type='BASE TABLE'
これはうまくいきます!
table_type='BASE TABLE'
。多分私は間違っています、詳しく説明していただけませんか?
select
relname as table
from
pg_stat_user_tables
where schemaname = 'public'
select
tablename as table
from
pg_tables
where schemaname = 'public'
pg_stat_user_tables
が無効になっていると、データtrack_activities
が入力されない可能性があります。などの「公式」APIを使用したpg_tables
か、information_schema.table
であるずっと良い選択。
ちょうど与えること\dt
はpsql
どうですか?https://www.postgresql.org/docs/current/static/app-psql.htmlを参照してください。
SELECT table_name
FROM information_schema.tables
WHERE table_type='BASE TABLE'
AND table_schema='public';
MySQLの場合はtable_schema = 'dbName'が必要であり、MSSQLの場合はその条件を削除します。
「現在のユーザーがアクセスできるのは、それらのテーブルとビューだけが表示されている」ことに注意してください。また、多くのデータベースにアクセスしていて、結果を特定のデータベースに制限したい場合は、条件AND table_catalog = 'yourDatabase'(PostgreSQLの場合)を追加することで実現できます。
行名を示すヘッダーと行数を示すフッターも削除したい場合は、コマンドラインオプション-t(--tuples-onlyの略)でpsqlを起動するか、psqlの設定を切り替えることができます。 \ tによるコマンドライン(\ pset tuples_onlyの省略形)。これは、たとえば、\ g [| command]を使用して出力を別のコマンドにパイプする場合に役立ちます。