Skip site navigation (1) Skip section navigation (2)

Recreate primary key without dropping foreign keys?

From: Chris Ernst <cernst(at)zvelo(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: Recreate primary key without dropping foreign keys?
Date: 2012-04-16 00:41:05
Message-ID: 4F8B6AA1.1040709@zvelo.com (view raw or flat)
Thread:
Lists: pgsql-adminpgsql-general
Hi all,

In PostgreSQL 9.1.3, I have a few fairly large tables with bloated
primary key indexes.  I'm trying to replace them using newly created
unique indexes as outlined in the docs.  Something like:

CREATE UNIQUE INDEX CONCURRENTLY dist_id_temp_idx ON distributors (dist_id);
ALTER TABLE distributors DROP CONSTRAINT distributors_pkey,
    ADD CONSTRAINT distributors_pkey PRIMARY KEY USING INDEX
dist_id_temp_idx;

However, the initial drop of the primary key constraint fails because
there are a whole bunch of foreign keys depending on it.

I've done some searching and haven't found a workable solution.  Is
there any way to swap in the new index for the primary key constraint
without dropping all dependent foreign keys?  Or am I pretty much stuck
with dropping and recreating all of the foreign keys?

Thanks in advance.

Chris Ernst
Data Operations Engineer
Zvelo, Inc.
http://zvelo.com/

Responses

pgsql-admin by date

Next:From: Frank LanitzDate: 2012-04-16 04:57:17
Subject: Re: Recreate primary key without dropping foreign keys?
Previous:From: Rural HunterDate: 2012-04-15 05:32:53
Subject: Re: invalid byte sequence for encoding "UTF8": 0xf481 - how could this happen?

pgsql-general by date

Next:From: Frank LanitzDate: 2012-04-16 04:57:17
Subject: Re: Recreate primary key without dropping foreign keys?
Previous:From: dlangionDate: 2012-04-16 00:03:42
Subject:

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group