Re: How to REMOVE an "on delete cascade"? - Mailing list pgsql-general

From Albe Laurenz
Subject Re: How to REMOVE an "on delete cascade"?
Date
Msg-id A737B7A37273E048B164557ADEF4A58B17BC1D9E@ntex2010a.host.magwien.gv.at
Whole thread Raw
In response to How to REMOVE an "on delete cascade"?  (Phoenix Kiula <phoenix.kiula@gmail.com>)
Responses Re: How to REMOVE an "on delete cascade"?  (Richard Broersma <richard.broersma@gmail.com>)
List pgsql-general
Phoenix Kiula wrote:
> Hi. Hard to find this command in the documentation - how should I alter a table to REMOVE the "on
> delete cascade" constraint from a table? Thanks.

Unless you want to mess with the catalogs directly, I believe that
you have to create a new constraint and delete the old one, like:

      Table "laurenz.b"
 Column |  Type   | Modifiers
--------+---------+-----------
 b_id   | integer | not null
 a_id   | integer | not null
Indexes:
    "b_pkey" PRIMARY KEY, btree (b_id)
    "b_a_id_ind" btree (a_id)
Foreign-key constraints:
    "b_a_id_fkey" FOREIGN KEY (a_id) REFERENCES a(a_id) ON DELETE CASCADE


ALTER TABLE b ADD CONSTRAINT scratch FOREIGN KEY (a_id) REFERENCES a(a_id);

ALTER TABLE b DROP CONSTRAINT b_a_id_fkey;

ALTER TABLE b RENAME CONSTRAINT scratch TO b_a_id_fkey;

Yours,
Laurenz Albe

pgsql-general by date:

Previous
From: David Greco
Date:
Subject: AFTER triggers and constraints
Next
From: Christoph Berg
Date:
Subject: Re: Why are there no inequality scans for ctid?