gpt4 book ai didi

django: IntegrityError: 重复键值违反唯一约束

转载 作者:行者123 更新时间:2023-11-29 14:01:05 25 4
gpt4 key购买 nike

当我尝试将新条目保存到名为“config”的表中时遇到了这个问题,

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”,所以 django 给出的表名实际上是“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”实际上是一个索引。所以我对重置哪个索引感到困惑?请帮忙。谢谢。

最佳答案

您可以尝试如下查询来确定哪个表定义了该唯一约束:

SELECT  n.nspname as schema_name,
co.conrelid::regclass as table_name,
co.conname as constraint_name,
pg_catalog.pg_get_constraintdef(co.oid, true) as constraing_def
FROM pg_constraint co
INNER JOIN pg_catalog.pg_class cl ON cl.oid = co.conrelid
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = cl.relnamespace
WHERE co.conname = 'pegasus_config_scanner_id_name_key'
AND co.contype = 'u'

关于django: IntegrityError: 重复键值违反唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17322686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com