Re: Dferred constraints not deferred?
От | Stephan Szabo |
---|---|
Тема | Re: Dferred constraints not deferred? |
Дата | |
Msg-id | 20030203085855.K90013-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | Dferred constraints not deferred? (Jean-Christian Imbeault <jc@mega-bucks.co.jp>) |
Список | 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 по дате отправления: