Re: alter table ad primary key

From: Dmitry Tkach <dmitry(at)openratings(dot)com>
To: Christoph Dalitz <christoph(dot)dalitz(at)hs-niederrhein(dot)de>
Subject: Re: alter table ad primary key
Date: 2002-08-23 17:20:05
Message-ID: 3D666EC5.602@openratings.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Christoph Dalitz wrote:
> Hello,
>
> trying "alter table buecher add primary key (isbn);"
> gives the error "ALTER TABLE / ADD CONSTRAINT is not implemented"
> with PG 7.1.
>
> Does anybody know whether this works with a newer PG version?
>
> Did someone already implement a workaround in form of a stored
> procedure that does the following:
> - copy the table entirely to a temporary table
> - remember all indices, constraints, rules and triggers on the old table
> (is that possible at all?)
> - drop the old table
> - recreate the table with a primary key
> - copy the temp table bakc
> - drop the temp table
> ?
>

You don't really need all this...

just:

create unique index buecher_isbn_pkey on buecher(isbn);
update pg_attribute set attnotnull='t' from pg_class where attrelid=oid and relname='buecher' and attname='isbn';

This will have exactly the same effect as making it a primary key. The *only* difference is that \d will not say it's a primary
key... Functionally, it is completely the same thing though...

I hope, it helps...

Dima

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2002-08-23 17:38:42 Re: alter table ad primary key
Previous Message Dmitry Tkach 2002-08-23 17:09:20 'on delete' rule: bug or feature...