23

質問と回答:

describe table多くの人が知っているように、PostgreSQL はorをサポートしていませんdescribe view。Google からわかるように、PostgreSQL は\d+代わりに使用します。

ただし、PgAdmin を使用して PostgreSQL にアクセスすると (実際には PgAdmin3 を使用しています)、\d+機能しません。代わりに何をしますか?

PgAdmin3 のクエリ ツールで遊んでいるときに、この質問について考えました。「まあ、当たり前!」がありました。PgAdmin3のホームウィンドウ、そのウィンドウ左側のツリーを見ようと思った瞬間。下

<servername>
-> <databasename>
-> Schemas
-> <schemaname>
-> Tables

は私のテーブルのリストで、テーブル名をクリックすると、私に表示されるもの\d+と非常によく似たテキストが表示されました。

したがって、これをすぐに発見しなかった他の人の利益のために、ここに答えがあります.

4

5 に答える 5

42

PostgreSQL は、データベース内のオブジェクトの詳細を取得するための標準 SQL 情報スキーマもサポートしています。

つまり、列情報を取得するには、information_schema.columnsビューを照会できます。

SELECT *
FROM information_schema.columns
WHERE table_name = '<YourTableName>';

必ず一重引用符を使用してください。二重引用符は機能しません

情報スキーマに関する PostgreSQL 固有の詳細については、こちらを確認してください。

于 2014-01-29T21:38:16.587 に答える
2

psql の \d コマンドは、一連のクエリをデータベースに送信してスキーマを調べ、結果を出力します。

同様の情報を SQL 経由で直接抽出できるようにしたい場合は、'-E' psql オプションを使用してこれらのクエリを表示することができます。

そうは言っても、psql は、標準化された「information_schema」スキーマの代わりに、内部の Postgresql カタログ テーブルを使用します (garethflowers からの回答を参照)。したがって、移植性に関心がある場合、またはあるリリースから次のリリースまで動作し続けることを保証する場合でも、おそらく information_schema を使用する必要があります。

于 2014-01-29T23:41:16.267 に答える
1

説明クエリが返す完全なビューを取得するには、対象のリレーション/テーブルを右クリックして [プロパティ...] を選択し、表示されたウィンドウの [列] タブを使用します。

唯一の違いは、ウィンドウが外部キー関係に関する情報を提供しないことです。

于 2018-12-11T22:42:19.840 に答える