У меня была эта проблема, когда я пытаюсь сохранить новую запись в таблицу под названием «конфигурации»,Джанго: IntegrityError: дублирование ключа нарушает ограничение уникальности
class Config(models.Model):
ident = models.CharField(max_length=uuidLength, null=True, editable=False)
scanner = models.ForeignKey('Scanner')
name = models.CharField(max_length=64)
''' some other fields '''
и Postgres дал такую ошибку (приложение называется «Пегас», так что имя таблицы, которая дает Джанго на самом деле «pegasus_config»):
IntegrityError: duplicate key value violates unique constraint "pegasus_config_scanner_id_name_key"
DETAIL: Key (scanner_id, name)=(2,) already exists.
Я искал в StackOverflow и нашел this решения, проблема в том, что я не знаю, какую таблицу следует сбросить индекс. я сделал следующее в соответствии с ответом:
SELECT setval('pegasus_config_id_seq', (SELECT MAX(id) FROM pegasus_config)+1)
, но проблема все еще существует. Я также зашел в базу данных и обнаружил, что «pegasus_config_scanner_id_name_key» на самом деле является индексом. Поэтому я смущен тем, какой индекс нужно сбросить? Пожалуйста помоги. Благодарю.
Я думаю, вы должны отбросить этот индекс. Кажется мне, что таблица берет в качестве ключа поле «scanner_id» и «имя», то и другое. Это то, что вы хотите? –