Re: duplicate primary key entries? - Mailing list pgsql-general

From Jan Wieck
Subject Re: duplicate primary key entries?
Date
Msg-id 3FC372A8.3020306@Yahoo.com
Whole thread Raw
In response to duplicate primary key entries?  (Baldur Norddahl <bbn-pgsql.general@clansoft.dk>)
List pgsql-general
Baldur Norddahl wrote:
> Hi,
>
> I just noticed something bad in our database:
>
> webshop=# select oid,* from content_loc where id=20488;
>    oid   |  id   | locale |     name
> ---------+-------+--------+--------------
>  9781056 | 20488 | any    | Rise Part II
>  9781058 | 20488 | any    | Rise Part II
> (2 rows)
>
> webshop=# \d content_loc
>   Table "public.content_loc"
>  Column |  Type   | Modifiers
> --------+---------+-----------
>  id     | integer | not null
>  locale | text    | not null
>  name   | text    |
> Indexes: content_loc_pkey primary key btree (id, locale)
> Foreign Key constraints: $1 FOREIGN KEY (id) REFERENCES content(id) ON UPDATE
> CASCADE ON DELETE CASCADE,
>                          $2 FOREIGN KEY (locale) REFERENCES languages(locale) ON
> UPDATE CASCADE ON DELETE CASCADE
>
>
>
> Apparently there are two rows with identical primary keys which should not be
> possible. Is this a know problem? Can I expect everything to be ok if I just
> delete the extra entry?

I would assume that btree index to be corrupt, otherwise it should have
led to a duplicate key error. So you have at least to reindex after
removing the extra entry.

The real question though is how did it get there? As far as I know it
allways turned out to be some damaged hardware (memory, disk) that led
to corrupted btree indexes.


Jan

>
> I am using the debian packages of postgresql 7.3.4-9.
>
> Thanks,
>
> Baldur
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster


--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #


pgsql-general by date:

Previous
From: "Uwe C. Schroeder"
Date:
Subject: Re: another newbie question: PLEASE HELP!
Next
From: Alvaro Herrera
Date:
Subject: Re: duplicate primary key entries?