Re: [SQL] Primary Key Bugs

Поиск
Список
Период
Сортировка
От José Soares
Тема Re: [SQL] Primary Key Bugs
Дата
Msg-id 37245F9D.F0232CC2@sferacarta.com
обсуждение исходный текст
Ответ на Primary Key Bugs  ("Tim Perdue" <perdue@raccoon.com>)
Список pgsql-sql

Tim Perdue ha scritto:

> Somehow I have records in my database with duplicate primary keys. Because
> of this, I'm not able to update a lot of records, because Postgres then
> complains that I'm trying to insert a duplicate primary key.
>
> Can anyone suggest a way to select the duplicate ids out of the table so I
> can change them?
>
> I can't really do a SELECT DISTINCT on a 3GB database table or my machine
> would likely go down.
>
> Basically, I just want a query like this:
>
> select * into tbl_tmp from tbl_mail where mailid is duplicated
>
> 8-)
>
> Any suggestions?
>
> Tim Perdue
> PHPBuilder.com / GotoCity.com / Geocrawler.com

The SQL expression to retrieve duplicate rows is:

select *  from tbl_mail where mailid in (
select mailid from tbl_mail group by mailid having count(mailid) > 1
);

But currently PostgreSQL have problems with having (see TODO):       * subqueries containing HAVING return incorrect
results

Therefore you have to query the tbl_mail in two times.

1) select mailid from tbl_mail group by mailid having count(mailid) > 1
2) select *  from tbl_mail where mailid = (replace with values returned at
point 1)

José





В списке pgsql-sql по дате отправления:

Предыдущее
От: jwieck@debis.com (Jan Wieck)
Дата:
Сообщение: Re: [SQL] PL/pgsql questions..
Следующее
От: Nuchanard Chiannilkulchai
Дата:
Сообщение: substring