· 4 years ago · Dec 22, 2020, 01:34 PM
1CREATE TABLE IF NOT EXISTS FK
2(
3 id BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
4 constraint_name CHARACTER VARYING(255) NOT NULL,
5 table_name CHARACTER VARYING(255) NOT NULL,
6 column_name CHARACTER VARYING(255) NOT NULL,
7 foreign_table_name CHARACTER VARYING(255) NOT NULL,
8 foreign_column_name CHARACTER VARYING(255) NOT NULL
9);
10
11INSERT INTO FK (constraint_name, table_name,column_name, foreign_table_name, foreign_column_name)
12SELECT
13 tc.constraint_name,
14 tc.table_name,
15 kcu.column_name,
16 ccu.table_name AS foreign_table_name,
17 ccu.column_name AS foreign_column_name
18FROM
19 information_schema.table_constraints AS tc
20 JOIN information_schema.key_column_usage AS kcu
21 ON tc.constraint_name = kcu.constraint_name
22 AND tc.table_schema = kcu.table_schema
23 JOIN information_schema.constraint_column_usage AS ccu
24 ON ccu.constraint_name = tc.constraint_name
25 AND ccu.table_schema = tc.table_schema
26WHERE tc.constraint_type = 'FOREIGN KEY'
27 AND tc.table_schema = 'public';