Re: Deleting one of 2 identical records

From: Thom Brown <thom(at)linux(dot)com>
To: "Gauthier, Dave" <dave(dot)gauthier(at)intel(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Deleting one of 2 identical records
Date: 2011-09-06 17:44:43
Message-ID: CAA-aLv7Fpdp66LQE2T6kydtRyMotDUAwB-6tu50qyuCaPF6Aiw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 6 September 2011 18:39, Gauthier, Dave <dave(dot)gauthier(at)intel(dot)com> wrote:

> Hi:****
>
> ** **
>
> If I have a table that has 2 records which are identical with regard to all
> their column values, is there a way to delete one of them, leaving one
> remaining? Is there some unique record_id key of some sort I can use for
> somethign like this?****
>
> ** **
>
> Thanks in Advance!****
>

Yes, identify them by their ctid value.

So get the ctids by running:

SELECT ctid, *
FROM my_table
WHERE <clause to identify duplicate rows>

You will see entries which look like "(7296,11)".

You can then delete the row by referencing it in the DELETE statement. For
example:

DELETE FROM my_table
WHERE ctid = '(7296,11)';

It's a shame we don't have a LIMIT on the DELETE clause (looks at hackers).

--
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Andy Colson 2011-09-06 17:52:08 Re: Deleting one of 2 identical records
Previous Message Gauthier, Dave 2011-09-06 17:39:14 Deleting one of 2 identical records