pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Chris Ernst <cernst@zvelo.com>
To: pgsql-admin@postgresql.org
Subject: Recreate primary key without dropping foreign keys?
Date: Sun, 15 Apr 2012 18:41:05 -0600
Message-ID: <4F8B6AA1.1040709@zvelo.com> (raw)

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/



view thread (10+ messages)  latest in thread

Message-ID: <4F8B6AA1.1040709@zvelo.com>
Permalink:  ../4F8B6AA1.1040709@zvelo.com/
Also on:    postgresql.org/message-id/4F8B6AA1.1040709@zvelo.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-admin@postgresql.org
  Cc: cernst@zvelo.com
  Subject: Re: Recreate primary key without dropping foreign keys?
  In-Reply-To: <4F8B6AA1.1040709@zvelo.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox