Индекс Postgres поврежден в таблицах сброса - PullRequest
0 голосов
/ 29 мая 2018

У меня есть странная ошибка с Postgres: всякий раз, когда я drop мои таблицы и воссоздаю их снова, я получаю эту ошибку:

Fatal: Error: can't insert into `accounts` table. error=pq: duplicate key value violates unique constraint "account_pkey"

Чтобы исправить это, я делаю:

reindexdb mydb

И это работает, все время.Эта ошибка воспроизводима в 100% случаев.Что я делаю не так?Почему индексы становятся коррумпированными?Любые предложения о том, как отладить эту проблему?

Я не думаю, что это актуально, но таблица учетных записей определяется следующим образом:

CREATE TABLE account (
        account_id                      SERIAL                  PRIMARY KEY,
        owner_id                        INT                     NOT NULL DEFAULT 0,
        last_balance                    NUMERIC                 DEFAULT 0,
        num_tx                          BIGINT                  DEFAULT 0,
        ts_created                      INT                     DEFAULT 0,
        block_created                   INT                     DEFAULT 0,
        deleted                         SMALLINT                DEFAULT 0,
        block_sd                        INT                     DEFAULT 0,
        address                         TEXT                    NOT NULL
);
CREATE INDEX account_addr_idx   ON      account                 USING   hash    ("address");
CREATE INDEX account_owner_idx  ON      account                 USING   btree   ("owner_id");
CREATE INDEX account_deleted_idx ON     account                 USING   btree   ("deleted");

Я пытался сбросить соединения или перезапуститьДемон postgres, ничего не работает, кроме переиндексации, но только после того, как я получаю фактическую ошибку.Повторная индексация сразу после создания новых таблиц не исключает ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...