为了账号安全,请及时绑定邮箱和手机立即绑定

Postgres:如果尚不存在,请插入

Postgres:如果尚不存在,请插入

当年话下 2019-11-05 10:59:39
我正在使用Python写入postgres数据库:sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("sql_string += hundred + ", '" + hundred_slug + "', " + status + ");"cursor.execute(sql_string)但是由于我的某些行是相同的,因此出现以下错误:psycopg2.IntegrityError: duplicate key value    violates unique constraint "hundred_pkey"如何编写“除非此行已存在,否则请插入” SQL语句?我看过这样的复杂语句:IF EXISTS (SELECT * FROM invoices WHERE invoiceid = '12345')UPDATE invoices SET billed = 'TRUE' WHERE invoiceid = '12345'ELSEINSERT INTO invoices (invoiceid, billed) VALUES ('12345', 'TRUE')END IF但是,首先,这是否满足我的需要,其次,如何将其中一个作为简单的字符串执行?
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

Postgres 9.5(自2016年1月7日发布)提供了一个“ upsert”命令,也称为INSERT的ON CONFLICT子句:


INSERT ... ON CONFLICT DO NOTHING/UPDATE

它解决了使用并发操作时可能遇到的许多细微问题,其他一些答案也提出了这些问题。


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 769 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信