我使用postgres(psycopg2)和python从facebook页面获取信息。我得到一个json对象并迭代任何帖子,以创建和连接插入查询字符串。对于一些用户,我收到以下错误:
ERROR: A duplicate key value violates the unique constraint "fb_post_pkey"
DETAIL: Key (id) = (xxx) already exists.
我应该怎么做才能提交查询?我可以从json对象中删除重复键吗?
答案 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更新现有行 与插入作为替代方案的行冲突 动作。