How do I create unique IDs for an existing set of records - Mailing list pgsql-sql

From Nick Fankhauser
Subject How do I create unique IDs for an existing set of records
Date
Msg-id NEBBLAAHGLEEPCGOBHDGOELNENAA.nickf@ontko.com
Whole thread Raw
Responses Re: How do I create unique IDs for an existing set of records  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
Hi-

There's got to be a simple way to do this, but it's eluding me so far...

I have a table that is already populated with about 600,000 rows.

I have created a new unique id field for it. (alter table test add new_pk
int8 not null;)

I have also createtd a sequence (create sequence test_new_pk)

Now I want to populate the key for all of the existing records.

I tried:

update test set new_pk = (select nextval('test_new_pk_seq'));

but it wants to update *all* of the rows to the current nextval (I was
hoping it would evaluate nextval on each row).

How do I write an update to assign a sequential id for the existing records?

Any ideas appreciated!

-Nick

--------------------------------------------------------------------------
Nick Fankhauser  nickf@ontko.com  Phone 1.765.935.4283  Fax 1.765.962.9788
Ray Ontko & Co.     Software Consulting Services     http://www.ontko.com/



pgsql-sql by date:

Previous
From: "Josh Berkus"
Date:
Subject: Wierd error for COPY command
Next
From: Tom Lane
Date:
Subject: Re: view on system tables upgrade?