Re: How to temporarily disable referntial integrity?

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Ari Johannesson <arividar(at)simnet(dot)is>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: How to temporarily disable referntial integrity?
Date: 2004-12-11 18:21:46
Message-ID: 20041211182146.GA39964@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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/

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2004-12-11 18:27:21 Re: [JDBC] Issue with large objects
Previous Message Chris White (cjwhite) 2004-12-11 17:42:15 Re: [JDBC] Issue with large objects