Re: duplicate primary key

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: duplicate primary key
Дата
Msg-id CABUevEyk2yVCvFC5Bj40nSjF=haHBcLtAq1xCKObdfjdfxJZ3g@mail.gmail.com
обсуждение исходный текст
Ответ на duplicate primary key  (Alexander Pyhalov <alp@rsu.ru>)
Ответы Re: duplicate primary key
Список pgsql-general
On Wed, Nov 22, 2017 at 12:05 PM, Alexander Pyhalov <alp@rsu.ru> wrote:
Hello.

I'm a bit shocked. During import/export of our database we've found a duplicate primary key.

# \d player

Table "public.player"
       Column       |            Type             |                             Modifiers
--------------------+-----------------------------+------------------------------------------------------------------------------------------------------------
 id                 | integer                     | not null default nextval('player_id_seq'::regclass)
...
Indexes:
    "pk_id" PRIMARY KEY, btree (id)
...

# select * from pg_indexes where indexname='pk_id';
 schemaname | tablename | indexname | tablespace |  indexdef
------------+-----------+-----------+------------+------------------------------------------------------
 public     | player    | pk_id     |            | CREATE UNIQUE INDEX pk_id ON player USING btree (id)

# select * from pg_constraint where conname='pk_id';
-[ RECORD 1 ]-+------
conname       | pk_id
connamespace  | 2200
contype       | p
condeferrable | f
condeferred   | f
convalidated  | t
conrelid      | 18319
contypid      | 0
conindid      | 18640
confrelid     | 0
confupdtype   |
confdeltype   |
confmatchtype |
conislocal    | t
coninhcount   | 0
connoinherit  | t
conkey        | {1}
confkey       |
conpfeqop     |
conppeqop     |
conffeqop     |
conexclop     |
conbin        |
consrc        |

# select count(*) from player where id=122224875;
-[ RECORD 1 ]
count | 2

The records are identical, besides ctid,xmin,xmax

# select tableoid,ctid,id,xmin,xmax from player where id=122224875;
 tableoid |     ctid     |    id     |    xmin    |    xmax
----------+--------------+-----------+------------+------------
    18319 | (9982129,2)  | 122224875 | 3149449600 | 3152681810
    18319 | (9976870,49) | 122224875 | 3149448769 | 3152328995



I don't understand how this could have happened....


What is your postgres version, and what's the "version history" of upgrades from it (talking pg_upgrade upgrades, not dump/reload upgrades). This might be fallout from old bugs thaat have been known to cause this type of problem. 



--

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

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: Set role dynamically from proc
Следующее
От: Alexander Pyhalov
Дата:
Сообщение: Re: duplicate primary key