Re: Adding another primary key to a populated table - Mailing list pgsql-general

From Guy Fraser
Subject Re: Adding another primary key to a populated table
Date
Msg-id 1136560961.4117.47.camel@sigurd.incentre.net
Whole thread Raw
In response to Re: Adding another primary key to a populated table  (Daniel Kunkel <DanielKunkel@BioWaves.com>)
Responses Re: Adding another primary key to a populated table
List pgsql-general
Have you considered dumping the data, dropping the table and
building the replacement table with the correct properties
then repopulating the table with the dumped data?

On Thu, 2006-05-01 at 23:02 -0800, Daniel Kunkel wrote:
> Why do I want to include 6 fields in the primary key?
>
> Good question...  I don't know. It's a requirement of OFBiz, a really
> awesome ERP/CRM/Accounting/ECommerce system.
>
> I'm upgrading the software which requires it, and need to upgrade the
> database to match.
>
> Once I find out, I'll publish the solution in the OFBiz forums and Wiki
> so others won't come knocking.
>
> Thanks
>
> Daniel
>
> On Thu, 2006-01-05 at 22:44 -0800, Aaron Koning wrote:
> > Are you trying to create a primary key composed of 6 fields? What is
> > the result you want to achieve with the constraint? If you just want
> > UNIQUE, NOT NULL values in a field, you can achieve that without
> > creating a primary key.
> >
> > Aaron
> >
> > On 1/5/06, Daniel Kunkel <DanielKunkel@biowaves.com> wrote:
> >         Hi
> >
> >         It makes sense that I can't have more than 1 primary key.
> >
> >         Postgres was trying to create another primary key instead of
> >         modify the
> >         existing primary key.
> >
> >         So...
> >
> >         As I understand it, a table does not always have to have a
> >         primary key
> >         defined.
> >
> >         Would it work to first delete/drop the primary key, then
> >         recreate the
> >         primary key on all 6 columns.
> >
> >         ALTER TABLE product_price DROP CONSTRAINT  product_price_pkey;
> >
> >         I tried this, but it doesn't seem to work...  If I look at the
> >         table
> >         from pgAdmin, it is still there, reindexable, I can't add a
> >         new primary
> >         key, etc.  But if I try to run the above command twice, it
> >         says it's
> >         already been removed.
> >
> >         --
> >
> >         Just for the record...  the error message I got was:
> >
> >         ERROR:  ALTER TABLE / PRIMARY KEY multiple primary keys for
> >         table
> >         'product_price' are not allowed
> >
> >
> >         On Fri, 2006-01-06 at 05:19 +0000, Andrew - Supernews wrote:
> >         > On 2006-01-06, Daniel Kunkel < DanielKunkel@BioWaves.com>
> >         wrote:
> >         > > Hi
> >         > >
> >         > > I'm trying to add another primary key to a table populated
> >         with data and
> >         > > a number of foreign key constraints.
> >         >
> >         > You can only have one primary key on a table.
> >         >
> >         > You can add additional unique constraints to get the same
> >         effect. (A
> >         > primary key constraint is just a unique constraint that is
> >         also not null,
> >         > and is the default target for REFERENCES constraints
> >         referring to the table -
> >         > this last factor is why there can be only one...)
> >         >
> >
> >
> >         ---------------------------(end of
> >         broadcast)---------------------------
> >         TIP 9: In versions below 8.0, the planner will ignore your
> >         desire to
> >                choose an index scan if your joining column's datatypes
> >         do not
> >                match
> >


pgsql-general by date:

Previous
From: Jaime Casanova
Date:
Subject: Re: "Could not open relation with OID x" while deleting a row
Next
From: Tom Lane
Date:
Subject: Re: Problems building pg 8.1.1