Sample Header Ad - 728x90

List foreign keys dependencies that refer to a given table

0 votes
1 answer
339 views
RDBMS: PostgreSQL 9.6 I desire to list the foreign keys for a given table and schema. I am about 90 % there but I also desire to know what options were used to make the fkey. Example on delete restrict or on delete update create or replace function it.table_foreign_keys_getlist(_schema text , _table text) returns TABLE(primary_key_ns text , primary_key_table text , foreign_key_ns text , foreign_key_table text ) language sql as $$ SELECT n1.nspname::TEXT AS primary_key_ns, c1.relname::TEXT AS primary_key_table, n2.nspname::TEXT AS foreign_key_ns, c2.relname::TEXT AS foreign_key_table FROM pg_catalog.pg_constraint c JOIN ONLY pg_catalog.pg_class c1 ON c1.oid = c.confrelid JOIN ONLY pg_catalog.pg_class c2 ON c2.oid = c.conrelid JOIN ONLY pg_catalog.pg_namespace n1 ON n1.oid = c1.relnamespace JOIN ONLY pg_catalog.pg_namespace n2 ON n2.oid = c2.relnamespace WHERE c1.relkind = 'r' AND c.contype = 'f' AND CASE WHEN _schema = '' THEN TRUE ELSE n1.nspname = _schema END AND CASE WHEN _table = '' THEN TRUE ELSE c1.relname = _table END ORDER BY 1,2,3,4; $$;
Asked by Daniel L. VanDenBosch (408 rep)
Jan 17, 2020, 02:02 PM
Last activity: Mar 6, 2025, 09:09 PM