如何区(upsert/insert into on conflict) 是INSERT还是UPDATE?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何区(upsert/insert into on conflict) 是INSERT还是UPDATE?

2018-10-17 21:58:29 5124 3
有这样一个sql语句
   INSERT INTO name_test (
        name_id, name
    )
    VALUES (%s, %s)
    ON CONFLICT(name_id) 
    DO UPDATE SET name_id=EXCLUDED.name_id,name=EXCLUDED.name
在代码中执行,如何判断PostgreSQL是执行的insert,还是update操作?
取消 提交回答
全部回答(3)
  • ImSoo
    2019-07-17 23:09:02
    已采纳

    PG可以通过xmax字段的值是否为0,作为判断依据.
    但是需要在SQL后面跟上returning xmax,才能返回xmax的值.
    代码修改为:

      INSERT INTO name_test (
            name_id, name
        )
        VALUES (%s, %s)
        ON CONFLICT(name_id) 
        DO UPDATE SET name_id=EXCLUDED.name_id,name=EXCLUDED.name
        returning xmax;
    update:
    [('1481076451',)]
    insert:
    [('0',)]

    最后取值,可做判断.
    详情参考https://github.com/digoal/blog/blob/master/201810/20181017_01.md

    0 0
  • wangccsy
    2019-07-17 23:09:02

    这个似乎确实不能判断。返回受影响的行数都是1。为什么有这样的需求?

    0 0
  • 吃奥利奥吗
    2019-07-17 23:09:02

    同问

    0 0
添加回答
相关问答

0

回答

Flink Cannot instantiate file system for URI: hdfs

2021-10-14 20:01:33 986浏览量 回答数 0

1

回答

typedef struct ast_config *func(...)

2016-03-23 14:20:01 1387浏览量 回答数 1

1

回答

#React 在create-react-app中如何使用https代替http?

2020-05-07 19:39:17 780浏览量 回答数 1

1

回答

docker中compose中的restart_policy是什么啊?

2022-04-03 10:06:58 186浏览量 回答数 1

0

回答

Bring Consensus to Date Replication

2018-05-27 18:23:59 804浏览量 回答数 0

0

回答

微服务访问RDS报错Failed to configure a DataSource: 'url'…

2020-07-29 21:08:45 879浏览量 回答数 0

1

回答

System.Memory'已经具有为'System.Runtime.CompilerService

2020-01-07 14:29:39 404浏览量 回答数 1

1

回答

基于django使用ajax发送post请求时,都可以使用哪种方法携带csrf token?

2021-12-07 15:52:33 137浏览量 回答数 1

1

回答

Request denied because this instance can only be accessed from the binded VPC

2016-07-21 15:59:01 2139浏览量 回答数 1

0

回答

php socket编程,一直提示failed to start up concurrent users module!

2018-11-25 09:52:33 4812浏览量 回答数 0
+关注
0
文章
21
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载