pg数据库upsert使用

发布时间 2023-06-08 20:47:27作者: 一只菜鸟的进阶之路

upsert顾名思义是update和insert,即插入的记录存在重复则会更新这条记录,否则就插入;这个语法可以简化我们的操作;upsert是一个简称的术语,并不是标准的sql标志符,因此在不用的数据库体系中表现的语法不一样,在pg数据库中语法为

  1.将某个数据更新为输入的值 :Insert into ....on conflict (判断重复字段集合) do update(更新)set....

  INSERT INTO ACCOUNT(ID,NAME) (1,‘麦当劳') ON CONFLICT(ID) DO UPDATE SET NAME='麦当劳' //向数据库中插入id为1,那么为麦当劳的记录,如果id为1的记录存在,则将对应的记录的name修改为麦当劳

  2.将某个数据更新为原值的累加等

  INSERT INTO ACCOUNT AS QUERYDATA (ID,VALUE) (1,100) ON CONFLICT(ID) DO UPDATE SET VALUE=QUERYDATA .VALUE+100 //向数据库中插入id为1,那么为麦当劳的记录,如果id为1的记录存在,则将对应的记录的name修改为麦当劳

  3.存在重复记录不做处理

  INSERT INTO ACCOUNT AS QUERYDATA (ID,VALUE) (1,100) ON CONFLICT(ID) DO nothing