Обсуждение: How to temporarily disable referntial integrity?

Поиск
Список
Период
Сортировка

How to temporarily disable referntial integrity?

От
"Ari Johannesson"
Дата:

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?

 

Thanks,

Ari Johannesson

Re: How to temporarily disable referntial integrity?

От
Michael Fuhr
Дата:
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/