Re: Creating a new column with SERIAL as data type

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Kumar S <ps_postgres(at)yahoo(dot)com>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: Creating a new column with SERIAL as data type
Date: 2004-09-20 03:32:21
Message-ID: 2066.1095651141@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Kumar S <ps_postgres(at)yahoo(dot)com> writes:
> friends=> alter table friend add column fr_id serial;
> NOTICE: ALTER TABLE will create implicit sequence "friend_fr_id_seq" for "serial" column "friend.fr_id"
> ERROR: adding columns with defaults is not implemented
> HINT: Add the column, then use ALTER TABLE SET DEFAULT.

> Can any one suggest what is wrong here.

Just what it says: adding columns with defaults is not implemented.
(It is implemented in 8.0, but that won't help you today.) You can
do it by hand:

create sequence friend_fr_id_seq;
alter table friend add column fr_id int;
update friend set fr_id = nextval('friend_fr_id_seq');
alter table friend alter column fr_id set default nextval('friend_fr_id_seq');

This isn't an exact substitute since the sequence will appear as
a standalone object and not be hidden behind the "serial" column,
but it's functionally equivalent.

regards, tom lane

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Kumar S 2004-09-20 04:18:59 Re: Creating a new column with SERIAL as data type
Previous Message Kumar S 2004-09-20 02:15:21 Creating a new column with SERIAL as data type