PostgreSQL | Query Foreign Key Table and Column Lists

Query the list of tables and columns that the table you want to inspect references through foreign keys.

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 = #{table_name_to_query};

Query the list of tables and columns that reference the table you want to inspect through foreign keys.

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 = #{table_name_to_query};