PostgreSQL: после импорта некоторых данных при вставке возникает ошибка - значение дублирующего ключа IntegrityError нарушает уникальное ограничение "place_country_pkey" - PullRequest
1 голос
/ 28 января 2012

Когда я импортирую некоторые данные в PostgreSQL через PhpPgAdmin, все в порядке.Но когда я позже пытаюсь вставить некоторые данные в заполненные до таблицы таблицы, я получаю сообщение об ошибке:

IntegrityError: значение дублированного ключа нарушает уникальное ограничение "place_country_pkey"

И это происходит только с предварительно заполненными таблицами.

Вот мой SQL:

DROP TABLE IF EXISTS place_country CASCADE;
CREATE TABLE place_country (
    id SERIAL PRIMARY KEY, 
    country_en VARCHAR(100) NOT NULL, 
    country_ru VARCHAR(100) NOT NULL, 
    country_ua VARCHAR(100) NOT NULL
);
INSERT INTO place_country VALUES(1,'Ukraine','Украина','Україна');

Как этого избежать?

Спасибо!

1 Ответ

3 голосов
/ 28 января 2012

Попробуйте не вставлять «1».IIRC, в Postgres, когда вы определяете столбец как SERIAL, это означает, что он автоматически сгенерирует идентификатор со счетчиком для автоматического заполнения этого столбца.Так что используйте:

INSERT INTO place_country (country_en, country_ru, country_ua) VALUES (Ukraine','Украина','Україна');

В любом случае, это хорошая практика, кстати (кстати, я имею в виду явно именование столбцов в INSERT).

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