On Thu, 2006-12-07 at 18:11 -0500, Tom Lane wrote:
> Jeff Davis <pgsql@j-davis.com> writes:
> > I think all you need to do what you want is something like:
> > ALTER TABLE foo DROP CONSTRAINT foo_pkey KEEP INDEX;
>
> > Because then you could drop the primary key status on a column without
> > affecting the column or the index, then use my suggested syntax to
> > switch the primary key status to a different index like so:
> > ALTER TABLE foo SET PRIMARY KEY INDEX foo_othercolumn_index;
>
> That seems like an awful lot of uglification simply to let the index be
> marked as "primary key" rather than just "unique".
>
Agreed. It's just a thought.
The reason it came to my mind is because some applications, like Slony,
use the primary key by default.
After reading through the archives, it looks like Gregory Stark
suggested a REINDEX CONCURRENTLY, which would certainly solve the
awkwardness of maintenance on a primary key. I didn't see much
objection, maybe it's worth consideration for 8.3?
Regards,
Jeff Davis