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 = #{取得したいテーブル名};