Postgresql通過查詢進行更新的操作
阿新 • • 發佈:2021-01-06
我就廢話不多說了,大家還是直接看例項吧~
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必須是主鍵或具有唯一性才可以
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。