postgresql插入数据时,主键存在就将数据更新,没有就新增一条记录

PG数据库写入一张主键表,主键存在就将数据更新,没有就新增一条记录

业务场景

如下图所示a表

idnameage
1aa18
2bb19

如下图所示b表

idnameage
2bb30
3cc21

需求:b表写入到a表,如果a表主键已经存在就将数据更新,没有就新增一条记录
更新后的a表

idnameage
1aa18
2bb30
3cc21

其中id为2是更新,3是新增进去的

实施方法

实现方法

 INSERT INTO (主键,字段一名称,字段二名称)  VALUES (修改后的id, 字段一值, 字段二值),  (未修改的id,字段一值, 字段二值)  ON CONFLICT(主键) DO UPDATE SET 字段一名称=EXCLUDED.字段一名称,字段二名称=EXCLUDED.字段二名称;

具体实现语句

INSERT INTO a (id, name, age)
SELECT id, name, age
FROM b
ON CONFLICT (id) DO UPDATE SET
    name =EXCLUDED.name,
    age =EXCLUDED.age;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值