Weird behavior: deleted row still in index?

From: Phoenix Kiula <phoenix(dot)kiula(at)gmail(dot)com>
To: PG-General Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Weird behavior: deleted row still in index?
Date: 2011-12-04 11:32:33
Message-ID: CAFWfU=vjqEMhUX+5ZuhYsXp_SJz4XE-2R2UeA3bu0HAb-beviw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi.

I have deleted a row from a table. Confirmed by "SELECT". All
associated children tables don't have this key value either.

Yet, when I insert this row back again, the primary key index on this
table gives me a duplicate error.

As demonstrated below. PGSQL version is 9.0.5.

Is this common? I have vacuum analyzed the table three times. Still
same problem. Why is the primary key index keeping a value that was
deleted?

Short of a REINDEX (which will lock the entire table....it's a large
one) is there anything I can do to clear up the index?

Thanks!

mydb=# delete from stores where id = '20xrrs3';
DELETE 0
Time: 0.759 ms

mydb=# INSERT INTO stores (id) VALUES ('20xrrs3');
mydb-#
ERROR: duplicate key value violates unique constraint "idx_stores_pkey"
DETAIL: Key (id)=(20xrrs3) already exists.
mydb=#
mydb=#

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Phoenix Kiula 2011-12-04 11:41:39 Re: Foreign keys question (performance)
Previous Message Alban Hertroys 2011-12-04 11:14:34 Re: Foreign keys question (performance)