繁体   English   中英

错误:密钥已经存在

[英]Error: Key already exists

我正在使用postgres(psycopg2)和python从Facebook页面获取信息。 我得到一个json对象并遍历所有帖子,以便创建和连接插入查询字符串。 与一些用户一起,我遇到以下错误:

ERROR:  A duplicate key value violates the unique constraint "fb_post_pkey"
DETAIL: Key (id) = (xxx) already exists.

我应该怎么做才能提交查询? 我可以从json对象中删除重复密钥吗?

这意味着您的数据库可以正常工作。 您的表格已配置为不允许重复。 有两种处理方式,具体取决于您的业务需求是什么

try:
    # sql insert command here

except IntegrityError:
    # tell the user here.

另一个选择是使用数据库通过ON CONFLICT子句正常处理此问题

可选的ON CONFLICT子句指定了引发唯一违反或排除约束违反错误的替代操作。 对于提议插入的每个单独行,要么继续插入,要么如果违反了由conflict_target指定的仲裁者约束或索引,则采用替代性的冲撞行为。 发生冲突时,别无所求,只是避免插入一行作为其替代操作。 ON CONFLICT DO UPDATE更新现有行,该行与作为替代操作提议插入的行冲突。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM