Re: An easy question about creating a primary key

Josh Berkus <josh@agliodbs.com>

From: "Josh Berkus" <josh@agliodbs.com>
To: "Ligia Pimentel" <lmpimentel@yahoo.com>, pgsql-sql@postgresql.org
Date: 2001-12-03T19:20:07Z
Lists: pgsql-hackers, pgsql-sql
Ligia,

> I want to create a primary key constraint on an existing table. The
> documentation says I can't . Please confirm. If this is true... How
> can I
> rename the existing table so I can create the new one and copy the
> data?

FYI, this question is more appropriate for the NOVICE list.

You would use the same method that you use to drop and recreate the
table for other reasons:

CREATE TABLE tablea_temp AS
SELECT * FROM tablea;

DROP tablea;

CREATE tablea (
   primary_key SERIAL ...
   <snip>
);

INSERT INTO tablea (column list)
SELECT (column list) FROM tablea_temp;

And don't forget to re-build your indexes!

-Josh Berkus




______AGLIO DATABASE SOLUTIONS___________________________
                                       Josh Berkus
  Complete information technology      josh@agliodbs.com
   and data management solutions       (415) 565-7293
  for law firms, small businesses        fax 621-2533
    and non-profit organizations.      San Francisco