Re: ALTER TABLE follow up - Mailing list pgsql-sql

From Christopher Kings-Lynne
Subject Re: ALTER TABLE follow up
Date
Msg-id GNELIHDDFBOCMGBFGEFOCEIPCDAA.chriskl@familyhealth.com.au
Whole thread Raw
In response to ALTER TABLE follow up  ("Tom Haddon" <tom@betterhealthfoundation.org>)
Responses Re: ALTER TABLE follow up  ("Tom Haddon" <tom@betterhealthfoundation.org>)
List pgsql-sql
Hi Tom,

> A follow up to the ALTER TABLE question last week. I had asked why I was
> getting an error message using the ALTER TABLE to add a PRIMARY
> KEY, and was
> told that this wasn't supported in 7.1.x. I've upgraded to 7.2.1 and now
> when I use the following SQL:
>
> ALTER TABLE "agency_contact_info" ADD CONSTRAINT
> "agency_contact_info_pkey"
> PRIMARY KEY NOT NULL ("id");

I have no idea where you got that NOT NULL bit from - it's not in the
manual.  In fact Posgres 7.2 has no sql function for changing the null
status of a column.  You can manually twiddle the catalogs however - make
SURE there's no NULL values in the column first:

UPDATE pg_attribute SET attnotnull = true WHERE attrelid = (SELECT oid FROM
pg_class WHERE relname = 'agency_contact_info') AND attname = 'id';

Now just go:

ALTER TABLE agency_contact_info ADD PRIMARY KEY (id):

Chris



pgsql-sql by date:

Previous
From: "Tom Haddon"
Date:
Subject: ALTER TABLE follow up
Next
From:
Date:
Subject: Limit A Table To 1 Row