Re: ALTER TABLE ... ADD FOREIGN KEY ... NOT ENFORCED - Mailing list pgsql-hackers

From Robert Haas
Subject Re: ALTER TABLE ... ADD FOREIGN KEY ... NOT ENFORCED
Date
Msg-id AANLkTinontTkgmoKC+7apT_HYw0+62LU2GSp4FyQT++N@mail.gmail.com
Whole thread Raw
In response to Re: ALTER TABLE ... ADD FOREIGN KEY ... NOT ENFORCED  (Rob Wultsch <wultsch@gmail.com>)
Responses Re: ALTER TABLE ... ADD FOREIGN KEY ... NOT ENFORCED  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
On Mon, Dec 13, 2010 at 12:59 AM, Rob Wultsch <wultsch@gmail.com> wrote:
> On Sun, Dec 12, 2010 at 7:24 PM, Andrew Dunstan <andrew@dunslane.net> wrote:
>> In fact it's possible now to disable FK enforcement, by disabling the
>> triggers. It's definitely a footgun though. Just the other day I was asked
>> how data violating the constraint could have got into the table, and caused
>> some surprise by demonstrating how easy this was to produce.
>
> Ugh. I have read the entire pg manual and I did not recall that
> footgun.  At least in MySQL disabling fk's is explicit. There is
> something to be said for being able to tell the database: "Hey, hold
> my beer and watch this, it might be stupid but it is what we are going
> to do".

I couldn't agree more, and that's a great way to put it.  The user is
in charge.  Our job is to prevent the user from *accidentally*
shooting themselves in the foot.  But if a crocodile is biting their
foot off and they want to fire their gun in that direction and take
their chances, it's not our job to say "oh, no, you might injure your
foot".  DBAs hate getting eaten by crocodiles.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Instrument checkpoint sync calls
Next
From: Robert Haas
Date:
Subject: Re: GiST insert algorithm rewrite