SQLでカラム情報一覧を取得する

information_schema.columnsテーブルにカラム情報が格納されているので、これを参照する。

testdb=# select column_name, column_name, is_nullable, data_type
  from information_schema.columns
  where table_name = 'テーブル名'
  order by ordinal_position;

テーブルと共に取得する方法は以下を参照。
» 【PostgreSQL】SQLでテーブル一覧を取得する

実行例

usersテーブルのカラム情報を取得するには以下のようなSQLを実行する。

testdb=# select column_name, column_name, is_nullable, data_type
  from information_schema.columns
  where table_name = 'users'
  order by ordinal_position;
 column_name | column_name | is_nullable | data_type
-------------+-------------+-------------+-----------
 id          | id          | NO          | integer
 name        | name        | YES         | text
 email       | email       | YES         | text
 address     | address     | YES         | text
(4 rows)

取得できる情報一覧

information_schema.columnsテーブルのカラム数が多いので、上記では一部のカラムに絞って表示している。
すべてを表示するとPostgreSQL 14では以下のカラムが表示された。

  • table_catalog
  • table_schema
  • table_name
  • column_name
  • ordinal_position
  • column_default
  • is_nullable
  • data_type
  • character_maximum_length
  • character_octet_length
  • numeric_precision
  • numeric_precision_radix
  • numeric_scale
  • datetime_precision
  • interval_type
  • interval_precision
  • character_set_catalog
  • character_set_schema
  • character_set_name
  • collation_catalog
  • collation_schema
  • collation_name
  • domain_catalog
  • domain_schema
  • domain_name
  • udt_catalog
  • udt_schema
  • udt_name
  • scope_catalog
  • scope_schema
  • scope_name
  • maximum_cardinality
  • dtd_identifier
  • is_self_referencing
  • is_identity
  • identity_generation
  • identity_start
  • identity_increment
  • identity_maximum
  • identity_minimum
  • identity_cycle
  • is_generated
  • generation_expression
  • is_updatable