Hi,
I'm playing with 8.5devel.
My question: is it possible to alter a constraint without drop and
rebuilding it?
For instance, i have a table test with a primary key, but i have
forgotten to declare the constraint as DEFERRABLE. I can drop and
recreate that, but the index are also dropped and recreated and i think,
this is not necessary.
test=# \d test
Table "public.test"
Column │ Type │ Modifiers
────────┼─────────┼───────────
i │ integer │ not null
Indexes:
"test_pkey" PRIMARY KEY, btree (i)
test=# alter table test drop constraint test_pkey ;
ALTER TABLE
Time: 1,127 ms
test=*# alter table test add primary key (i) DEFERRABLE INITIALLY DEFERRED;
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "test_pkey" for table "test"
ALTER TABLE
Time: 281,479 ms
test=*# \d test
Table "public.test"
Column │ Type │ Modifiers
────────┼─────────┼───────────
i │ integer │ not null
Indexes:
"test_pkey" PRIMARY KEY, btree (i) DEFERRABLE INITIALLY DEFERRED
Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°