Re: Dferred constraints not deferred? - Mailing list pgsql-general

From Stephan Szabo
Subject Re: Dferred constraints not deferred?
Date
Msg-id 20030203085855.K90013-100000@megazone23.bigpanda.com
Whole thread Raw
In response to Dferred constraints not deferred?  (Jean-Christian Imbeault <jc@mega-bucks.co.jp>)
List pgsql-general
On Mon, 3 Feb 2003, Jean-Christian Imbeault wrote:

> I'm trying to drop a table inside a transaction with all constraints
> deferred, and then re-create the table, but PG won't let me ..
>
> TAL=# begin;
> BEGIN
> TAL=# SET CONSTRAINTS ALL DEFERRED;
> SET CONSTRAINTS
> TAL=# drop table invoices;
> NOTICE:  constraint $1 on table invoice_admin_memo depends on table invoices
> NOTICE:  constraint $1 on table req_dlv_date depends on table invoices
> NOTICE:  constraint $1 on table invoice_li depends on table invoices
> NOTICE:  constraint $1 on table invoice_emails depends on table invoices
> ERROR:  Cannot drop table invoices because other objects depend on it
>          Use DROP ... CASCADE to drop the dependent objects too
>
> I tought the point of "SET CONSTRAINTS ALL DEFERRED" was to make
> transaction skip constraint checking until the end of a transaction ...
> But in this case the foreign key constraints a checked right away ...
>
> What I would like is to drop the table and recreate it without having PG
> complain about these FK constraints until the very end of the
> transaction (at which time all data will be consistant) ... is this
> possible?

Not really.  Deferrability refers to the "check" time of the constraint
which is unrelated to the drops that are necessary for a table drop which
AFAIR was direct text in the drops.


pgsql-general by date:

Previous
From: Greg Stark
Date:
Subject: Re: Query plan question, and a memory leak
Next
From: gilles Darold
Date:
Subject: OpenLDAP / PostgreSQL