Postgresql通过查询进行更新的操作

(编辑:jimmy 日期: 2024/10/19 浏览:2)

我就废话不多说了,大家还是直接看实例吧~

UPDATE tb1
SET c1=b.c1 ,
c2=b.c2
FROM b
WHERE tb1.c3 = b.c3 AND tb1.c4 = b.c4

补充:postgresql数据库 如果存在则更新(update),如果不存在则插入(insert)

格式:

insert into ...... on conflict(column_name) do ......

例子:

uxdb=# create table tbl_c (id int unique, name varchar(2));
CREATE TABLE
uxdb=# insert into tbl_c values (1, 'a');
INSERT 0 1
uxdb=# table tbl_c;
 id | name 
----+------
 1 | a
(1 row)
uxdb=# insert into tbl_c values (1, 'a');
ERROR: duplicate key value violates unique constraint "tbl_c_id_key"
DETAIL: Key (id)=(1) already exists.
uxdb=# insert into tbl_c values (1, 'a') on conflict(id) do update set name='b';
INSERT 0 1
uxdb=# table tbl_c;
 id | name 
----+------
 1 | b
(1 row)
 
uxdb=# 

注意:conflict(column_name)中的column_name必须是主键或具有唯一性才可以

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

一句话新闻

微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。