Re: How to REMOVE an "on delete cascade"?

From: Richard Broersma <richard(dot)broersma(at)gmail(dot)com>
To: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
Cc: "Phoenix Kiula *EXTERN*" <phoenix(dot)kiula(at)gmail(dot)com>, PG-General Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Re: How to REMOVE an "on delete cascade"?
Date: 2013-06-28 21:31:39
Message-ID: CABvLTWHdT0tTygV0-O_ZgLRRAGZAg0W4zvghfF2PshAzvkAaGg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

You can do all that in a single sql command.

ALTER TABLE b DROP CONSTRAINT b_a_id_fkey, ADD CONSTRAINT b_a_id FOREIGN
KEY (a_id) REFERENCES a(a_id);

On Fri, Jun 28, 2013 at 5:55 AM, Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>wrote:

> 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
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

--
Regards,
Richard Broersma Jr.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Bruce Momjian 2013-06-28 22:05:05 Re: [GENERAL] pg_upgrade -u
Previous Message Kenneth Tilton 2013-06-28 17:18:44 Re: Application locking