0 votes
1 view
in SQL by (20.3k points)

Is there a way of using SQL to list all foreign keys for a given table? I know the table name/schema and I can plug that in.

1 Answer

0 votes
by (40.3k points)

You can use information_schema tables like this:

SELECT

    tc.table_schema, 

    tc.constraint_name, 

    tc.table_name, 

    kcu.column_name, 

    ccu.table_schema AS foreign_table_schema,

    ccu.table_name AS foreign_table_name,

    ccu.column_name AS foreign_column_name 

FROM 

    information_schema.table_constraints AS tc 

    JOIN information_schema.key_column_usage AS kcu

      ON tc.constraint_name = kcu.constraint_name

      AND tc.table_schema = kcu.table_schema

    JOIN information_schema.constraint_column_usage AS ccu

      ON ccu.constraint_name = tc.constraint_name

      AND ccu.table_schema = tc.table_schema

WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name='mytable';

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...