WITH foreign_keys
AS (SELECT conname,
conrelid,
confrelid,
Unnest(conkey) AS CONKEY,
Unnest(confkey) AS CONFKEY
FROM pg_constraint
WHERE contype = 'F'
-- AND CONFRELID::REGCLASS = 'YOUR_TABLE'::REGCLASS
)
-- IF CONFRELID, CONNAME PAIR SHOWS UP MORE THAN ONCE THEN IT IS MULTICOLUMN FOREIGN KEY
SELECT FK.conname AS CONSTRAINT_NAME,
FK.confrelid :: regclass AS REFERENCED_TABLE,
AF.attname AS PKCOL,
FK.conrelid :: regclass AS REFERENCING_TABLE,
A.attname AS FKCOL
FROM foreign_keys FK
join pg_attribute AF
ON AF.attnum = FK.confkey
AND AF.attrelid = FK.confrelid
join pg_attribute A
ON A.attnum = conkey
AND A.attrelid = FK.conrelid
WHERE FK.confrelid :: regclass = 'PUBLIC.CLIENTS_CLIENT' :: regclass
ORDER BY FK.confrelid,
FK.conname;
Created
November 8, 2021 23:53
-
-
Save rednafi/5a24434b90fd1871d315104e8e777669 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment