PostgreSQL | 外部キー(Foreign key)のテーブルおよびカラム一覧を取得する

確認したいテーブルが外部キーで参照しているテーブルおよびカラムの一覧を取得する。

SELECT CCU.table_name      AS search_table_name
     , CCU.column_name     AS search_column_name
     , KCU.table_name      AS foreign_table_name
     , KCU.column_name     AS foreign_column_name
     , KCU.constraint_name AS foreign_constraint_name
 FROM information_schema.table_constraints TC
      JOIN information_schema.key_column_usage KCU ON TC.constraint_name = KCU.constraint_name
      JOIN information_schema.constraint_column_usage CCU ON CCU.constraint_name = TC.constraint_name
WHERE TC.constraint_type = 'FOREIGN KEY'
  AND CCU.table_name = #{取得したいテーブル名};

確認したいテーブルを外部キーで参照しているテーブルおよびカラムの一覧を取得する。

SELECT TC.table_name   AS search_table_name
     , KCU.column_name AS search_column_name
     , CCU.table_name  AS foreign_table_name
     , CCU.column_name AS foreign_column_name
     , CCU.constraint_name AS foreign_constraint_name
  FROM information_schema.table_constraints TC
       JOIN information_schema.key_column_usage KCU ON KCU.constraint_name = TC.constraint_name
       JOIN information_schema.constraint_column_usage CCU ON CCU.constraint_name = TC.constraint_name
 WHERE TC.constraint_type = 'FOREIGN KEY'
   AND TC.table_name = #{取得したいテーブル名};