错误:密钥已存在

时间:2017-05-18 12:20:52

标签: python json postgresql facebook-graph-api psycopg2

我使用postgres(psycopg2)和python从facebook页面获取信息。我得到一个json对象并迭代任何帖子,以创建和连接插入查询字符串。对于一些用户,我收到以下错误:

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

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

1 个答案:

答案 0 :(得分:2)

这意味着您的数据库正在正常工作。您的表配置为不允许重复。根据您的业务需求,有两种方法可以处理它

try:
    # sql insert command here

except IntegrityError:
    # tell the user here.

另一个选择是使用数据库使用ON CONFLICT子句

正常处理它
  

可选的ON CONFLICT子句指定了替代操作   提出唯一违规或排除约束违规错误。   对于建议插入的每个单独行,要么插入   收益,或者,如果由仲裁者约束或指数指定   违反了conflict_target,采取了替代的conflict_action。   在冲突时不要简单地避免插入一行作为它   替代行动。 ON CONFLICT DO UPDATE更新现有行   与插入作为替代方案的行冲突   动作。