HOWTO · PostgreSQL

PostgreSQL で列名を取得する

Postgres から列名を取得するには、2つの方法があります。 テーブル名に対して d+ コマンドを使用するか、SQL コマンドを使用できます。

この記事では、PostgreSQL で \d+ コマンドを使用して列名を取得する方法について説明します。

PostgreSQL で \d+ コマンドを使用して列名を取得する

列には複数のプロパティがあります。 PostgreSQL には、テーブルの列の詳細を表示できる組み込み機能がいくつかあります。

私のシステムでは、データベースに次のテーブルがあります。

postgres=# \dt
          List of relations
 Schema |   Name   | Type  |  Owner
--------+----------+-------+----------
 public | account  | table | postgres
 public | accounts | table | postgres
 public | bank     | table | postgres
 public | logger   | table | postgres
 public | product  | table | postgres
 public | purchase | table | postgres
 public | randoms  | table | postgres
 public | students | table | postgres
 public | times    | table | postgres
 public | wishlist | table | postgres
(10 rows)
postgres=#

テーブル "accounts" のすべての列名、タイプ、および詳細を確認したいと考えています。

構文:

\d+ accounts

出力:

PostgreSQL で d+ コマンドで列名を取得する

また、このコマンドは、このテーブルに関連するすべての制約を表示します。

列名を取得する SQL クエリ

クエリを作成する前に、この情報がどのテーブルに格納されているかを知る必要があります。 "information_schema.columns" はテーブルの列情報を保持し、多くのフィールドがあります。

完全なリストは こちら でご覧いただけます。

クエリ:

SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'accounts';

出力:

 column_name |          data_type
-------------+-----------------------------
 user_id     | integer
 postcode    | integer
 age         | integer
 height      | integer
 timestamp   | timestamp without time zone
 username    | character varying
 password    | character varying
 email       | character varying
 contact     | character varying
(9 rows)

また、追加のチェックを提供することもできます。 ここでは、PSQL シェルを使用しているためです。 デフォルトで特定のデータベースに接続しており、クエリはそのスキーマで実行されます。

更新された SQL ステートメントは次のようになります。

クエリ:

SELECT column_name, data_type,
FROM information_schema.columns
WHERE
table_name = 'table_name'
AND table_catalog = 'database_name'
AND table_schema = 'schema_name'

"schema-table" の公式ドキュメント リンク はこちらです。