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
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... |