Re: ALTER TABLE follow up

From: "Tom Haddon" <tom(at)betterhealthfoundation(dot)org>
To: "Christopher Kings-Lynne" <chriskl(at)familyhealth(dot)com(dot)au>, <pgsql-sql(at)postgresql(dot)org>
Subject: Re: ALTER TABLE follow up
Date: 2002-08-07 18:30:53
Message-ID: NEBBIHDGCLBEJMPFAMLACENDCHAA.tom@betterhealthfoundation.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi Chris,

Thanks for that. I have one final question (for the moment).

How do I also alter the id column properties to reflect as below?

DEFAULT nextval('agency_contact_info_id_key'::text)

Is there an SQL query for this, or another manual "twiddle"?

Thanks, Tom

-----Original Message-----
From: Christopher Kings-Lynne [mailto:chriskl(at)familyhealth(dot)com(dot)au]
Sent: Tuesday, August 06, 2002 7:02 PM
To: Tom Haddon; pgsql-sql(at)postgresql(dot)org
Subject: RE: [SQL] ALTER TABLE follow up

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

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message John Brothers 2002-08-07 18:39:40 getting oid of an INSERT automatically
Previous Message Ignacio Coloma 2002-08-07 18:02:39 Re: running psql in a cron job