Drop foreign keys generally in POSTGRES
·
Answer a question
How can I drop Foreign keys in general. I mean, if I have many foreign key constraints in a table. like
MonthlyEvaluatedBudgetTable Contraints:
- budgetid_pk (Primary Key)
- branchid_fk (Foreign Key)
- accountid_fk (Foreign Key)
- dept_fk (Foreign Key)
Is there a way in postgres to drop all foreign keys in general and not specifically in an existing table? Im using this line of code to drop a foreign key in an existing table.
ALTER TABLE "public"."monthlyevaluatedbudgettable"
DROP CONSTRAINT "accountid_fk";
But I want to drop It without specifically inputing accountid_fk,branchid_fk,dept_fk. Is there a way on it? thanks in advance.
Answers
Loop it in DO statement, like:
b=# create table a (a int primary key, b int unique);
CREATE TABLE
b=# create table b (a int references a(a), b int references a(b));
CREATE TABLE
b=# do
$$
declare r record;
begin
for r in (select constraint_name from information_schema.table_constraints where table_schema = 'public' and table_name='b') loop
raise info '%','dropping '||r.constraint_name;
execute CONCAT('ALTER TABLE "public"."b" DROP CONSTRAINT '||r.constraint_name);
end loop;
end;
$$
;
INFO: dropping b_a_fkey
INFO: dropping b_b_fkey
DO
更多推荐
所有评论(0)