Re: How to temporarily disable referntial integrity? - Mailing list pgsql-admin

From Michael Fuhr
Subject Re: How to temporarily disable referntial integrity?
Date
Msg-id 20041211182146.GA39964@winnie.fuhr.org
Whole thread Raw
In response to How to temporarily disable referntial integrity?  ("Ari Johannesson" <arividar@simnet.is>)
List pgsql-admin
On Tue, Dec 07, 2004 at 06:17:48PM -0000, Ari Johannesson wrote:

> I have data to import into a postgres database. The data is referentially
> sound but during the insert it breaks som foreign-key constraints. Is there
> a way to turn off the referential integrity during the insert?

You could make the foreign key constraints deferrable and use SET
CONSTRAINTS to defer all or some of them.

CREATE TABLE foo (id INTEGER PRIMARY KEY);
CREATE TABLE bar (id INTEGER REFERENCES foo DEFERRABLE);

BEGIN;
SET CONSTRAINTS bar_id_fkey DEFERRED;
INSERT INTO bar VALUES (1);
INSERT INTO foo VALUES (1);
COMMIT;

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

pgsql-admin by date:

Previous
From:
Date:
Subject: pg_dump / pg_dumpall return codes
Next
From: "Magnus Hagander"
Date:
Subject: Re: pgcrypto module for WINDOWS