Question

I have a table res_users with primary key id

I would like to list all the foreign key link to id from all the tables in my database.

Was it helpful?

Solution

You can query the catalog tables:

SELECT la.attrelid::regclass AS referencing_table,
       la.attname AS referencing_column
FROM pg_constraint AS c
   JOIN pg_index AS i
      ON i.indexrelid = c.conindid
   JOIN pg_attribute AS la
      ON la.attrelid = c.conrelid
         AND la.attnum = c.conkey[1]
   JOIN pg_attribute AS ra
      ON ra.attrelid = c.confrelid
         AND ra.attnum = c.confkey[1]
WHERE c.confrelid = 'res_users'::regclass
  AND c.contype = 'f'
  AND ra.attname = 'id'
  AND cardinality(c.confkey) = 1;
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top