Re: как отключить foreign key

Lists: pgsql-ru-general
From: Shestakov Nikolay <nshestakov(at)naumen(dot)ru>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: как отключить foreign key
Date: 2008-08-14 09:10:17
Message-ID: 48A3F679.3060807@naumen.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

Добрый день!

При изменение структуры БД иногда требуется на время отключить foreign
key. В oracle это делается так

ALTER TABLE table MODIFY CONSTRAINT constraint ENABLE/DISABLE

А как это делается на postgresql?


From: "Ivan Zolotukhin" <ivan(dot)zolotukhin(at)gmail(dot)com>
To: "Shestakov Nikolay" <nshestakov(at)naumen(dot)ru>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: как отключить foreign key
Date: 2008-08-14 09:41:08
Message-ID: 751e56400808140241w80ff1e7h58905b7d1cc6e67@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

Добрый день,

Сделайте все FKs, которые хотите отключить на время, DEFERRED (см. ман
по foreign keys). Потом в DDL-транзакции в начале просто указывайте
SET CONSTRAINTS ALL DEFERRED; и целостность базы будет проверяться
только в самом конце при операции COMMIT.

--
Regards,
Ivan

2008/8/14 Shestakov Nikolay <nshestakov(at)naumen(dot)ru>:
> Добрый день!
>
> При изменение структуры БД иногда требуется на время отключить foreign key.
> В oracle это делается так
>
> ALTER TABLE table MODIFY CONSTRAINT constraint ENABLE/DISABLE
>
> А как это делается на postgresql?
>
> --
> Sent via pgsql-ru-general mailing list (pgsql-ru-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-ru-general
>