• 如何在postgresql中,一句sql完成未有数据记录的insert,再update的操作


    下面是sql语句:

    insert into jd_api_data_20200116 (id,name) select id,city from province_and_city as a where id = 1 on conflict(id) do update set name = EXCLUDED.name;

    详解:

    首先呢,基础语法是这样的:

    insert into xxx on conflict(pkkey) do xxx;

    这是一个插入语句触发器(需要一个主键或者唯一索引),当原本数据库有这条唯一索引的数据时,执行触发器后语句,否则执行insert语句.

    然后呢,上面这句,先执行select 查询语句,查询该id对应的记录的id,city字段值,然后执行insert语句,将查询的字段值insert到新表中,如果已存在该记录,那么执行do触发器后的update语句.

    这里update语句中的EXCLUDE.xxx表示前面查询语句对应的字段值

  • 相关阅读:
    Run Shell Commands in Python
    在Linux系统上查找文件
    Build a Beautiful oh-my-zsh Themes
    Build VM Cluster on CentOS Host
    色彩学笔记
    Pr PS 笔记
    pthread 笔记
    图片格式
    win DLL 笔记
    XVS 操作
  • 原文地址:https://www.cnblogs.com/yiduobaozhiblog1/p/12604205.html
Copyright © 2020-2023  润新知