データベース

【PostgreSQL】指定カラムの存在チェックでテーブル名を取得する方法

指定したカラム名が存在するかチェックし、カラム名が存在するテーブル名を一覧で取得する方法を紹介します。

PostgreSQLのシステムテーブルを利用することで取得することが可能です。

ぜひ最後まで読んでみてください。

指定したカラムの存在チェックを行う

ここでは情報スキーマ(information_schema)のcolumnsテーブルを使います。

PostgreSQLの情報スキーマ(information_schema)とは、データベースのシステム情報(メタデータ)を参照するための標準インターフェースの事です。

  • 情報スキーマは、現在のデータベースで定義されたオブジェクトについての情報を持つビューの集合である。
  • 情報スキーマは、標準SQLで定義されているので他のデータベースにも存在する。
  • PostgreSQLに特化した情報を調べるためには,情報スキーマではなく,システムカタログを使う。

情報スキーマのcolumnsテーブルには、テーブル内のカラムに関する情報を取得します。

columnsテーブルのカラムには次のようなものがあります。

カラム名説明
table_nameカラムを含むテーブルの名前
column_nameカラムの名前
table_schemaカラムを含むテーブルが属するスキーマの名前
ordinal_postionテーブル内のカラムの位置
column_typeカラムのデータ型
column_commnetカラム定義に含まれるコメント
privilegesカラムに対して持っている権限

 

情報スキーマを使って、指定したカラム名が存在するテーブル名を取得するSQL文は以下になります。

カラム名の存在チェックをするSQL文

select table_name from information_schema.columns where column_name = ‘[カラム名]’;

このSQL文をコマンドプロンプトを使って実行してみましょう。

Windows OSの場合は、PostgreSQLのコマンドをコマンドプロンプトで実行できるように設定が必要です。設定が完了していない場合は以下のリンクから設定を行っておきましょう。

>>コマンドラインを実行する方法を確認する

データベースには、次のようなカラム構成で作成されたテーブルが存在します。

ここでは、「serial_number」というカラム名を指定し、このカラム名が含まれるテーブル名を取得します。

テーブル名カラム1カラム2カラム3
sample1idpasstimemodel_number
sample2dipasstimeserial_number
sample3idpasstimecharacter_number

では実行してみましょう。

狙い通り sample2 が検索結果として表示されました。

最後に

情報スキーマを使えば他にもカラム一覧を取得したり、テーブルにあるカラムの一覧を取得することが可能です。

データベース内のカラム一覧を取得するSQL文

select distinct column_name from information_schema.columns where table_schema = ‘public’;

テーブル内のカラム一覧を取得するSQL文

select column_name from information_schema.columns where table_name='[テーブル名]’;

こちらの記事もおすすめですので、参考にしてみてください。

>>テーブル一覧を取得する方法

 

以上、最後まで読んで頂きありがとうございました。

プログラミングを学習したいなら…

プログラミングスキルを身に付けるなら、プログラミングを効率良く学べる
プログラミングスクール」がオススメです。

特にこんな方にオススメ!!
これからエンジニアを目指したい
プログラミングの専門性を高めたい
プログラミングを学んで副業をしたい
エンジニアに転職して年収をアップさせたい

プログラミングを触ったことがない未経験からでも、プログラミングスクールで学習すれば、エンジニアへ就職・転職することも可能です。

あなたの「行動力」と「やる気」で、あなたの人生を大きく変えるチャンスになることでしょう。

プログラミングスクールに興味がある方は是非チェックしてみてください。

> プログラミングを学ぶ <

COMMENT

メールアドレスが公開されることはありません。

CAPTCHA