> 作業効率UP!! オススメのモバイルモニターを紹介

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

  • URLをコピーしました!

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

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
sample1 id passtime model_number
sample2 di passtime serial_number
sample3 id passtime character_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='[テーブル名]’;

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

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

 

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

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

プログラムが大好きなパンダです。
主に C# を使ってデスクトップアプリやモバイルアプリなどを開発しています。

当ブログでは C# の使い方や WPF または .NET MAUI を使ったサンプルアプリなど発信しています。

コメント

コメントする

CAPTCHA


記事の内容