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°

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to