【发布时间】:2019-05-31 15:17:19
【问题描述】:
尝试将数据插入到具有唯一约束的新空表中。当我删除 ON CONFLICT 语句时,代码会立即出错,并在第一次插入尝试中违反唯一约束,即使表为空。当我从表中删除唯一约束时,当我重新运行代码时数据会重复。
我希望插入验证该行是否存在并且什么都不做,如果它不存在,则创建一个新条目。我在 Mac OSX 上运行 postgres 11.3。任何帮助表示赞赏。
psycopg2.extras.execute_values(cur,
"insert into ferc_hots (html,link) values %s",
values)
on conflict (html,link) do nothing
con.commit()
print("Records inserted successfully")
con.close()
【问题讨论】:
-
ON CONFLICT应该在代码的 SQL 部分,而不是 Python 代码的一部分。 -
不知道如何解决这个问题。当我将值之后的 ) 移动到冲突语句的末尾时仍然出现语法错误
标签: python postgresql psycopg2