Created
June 12, 2023 18:49
-
-
Save Artiesy/ea00ea2ae05c7ef358f56ad6821eb76b to your computer and use it in GitHub Desktop.
Replace all foreign key actions in table to CASCADE
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DO $$DECLARE | |
r RECORD; | |
BEGIN | |
FOR r IN ( | |
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='kl_user_referral' | |
) LOOP | |
EXECUTE 'ALTER TABLE ' || r.table_name || ' DROP CONSTRAINT ' || r.constraint_name; | |
EXECUTE | |
'ALTER TABLE ' || r.table_name || ' ADD CONSTRAINT ' || r.constraint_name || | |
' FOREIGN KEY (' || r.column_name || ') REFERENCES ' || r.foreign_table_name || | |
' (' || r.foreign_column_name || ' ) ON DELETE CASCADE ON UPDATE CASCADE'; | |
END LOOP; | |
END$$; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment