Re: Cannot insert a duplicate key into unique index pg_calss_oid_index

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Cannot insert a duplicate key into unique index pg_calss_oid_index
Дата
Msg-id 15764.1044565988@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Cannot insert a duplicate key into unique index pg_calss_oid_index  (charette@writeme.com (Stephane Charette))
Список pgsql-general
charette@writeme.com (Stephane Charette) writes:
> backend> reindex database log force
> NOTICE:  relation 1247 was reindexed
> NOTICE:  relation 1249 was reindexed
> ERROR:  Cannot create unique index. Table contains non-unique values
> backend>

> What does this mean, and how do I fix it?

It would appear that you've actually got some duplicate rows (at least
with duplicate OIDs) in pg_class.

To find 'em, try
    select oid from pg_class group by oid having count(*) > 1;
then you can do
    select ctid,oid,* from pg_class where oid = <whatever>;

Assuming they are actually duplicates (everywhere except for the ctid
field), you should be able to do
    delete from pg_class where ctid = '<whatever>';
to zap all but one.  Then reindex.

I would advise an update to 7.2.4, which fixes one known possible cause
of duplicate rows.

If you can figure out a sequence that reproduces the problem, btw, I
would like to know about it.  The known cause involves a system crash
at just the wrong time; it's not clear if your "reboots" were due to
system failure or not.

            regards, tom lane

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

Предыдущее
От: Bruno Wolff III
Дата:
Сообщение: Re: Question: unique on multiple columns
Следующее
От: Tom Lane
Дата:
Сообщение: Re: backend process crash - PL/pgSQL functions - parsing problem?