您现在的位置是:亿华云 > 域名

Postgre SQL数据库实现有记录则更新无记录就新增

亿华云2025-10-08 23:06:02【域名】3人已围观

简介在PostgreSQL中使用on conflict关键字,可以很方便地实现有则更新无则新增的功能:创建一张测试表,id为自增主键,cust_id为用户id,name为用户名称:createtablet

 在PostgreSQL中使用on conflict关键字,数据可以很方便地实现有则更新无则新增的库实功能:

创建一张测试表,id为自增主键,现有新无新增cust_id为用户id,记录记录name为用户名称:

create table test_cust (id serial primary key,则更 cust_id int, name varchar(20)); 

为字段cust_id创建唯一约束:

create unique index idx_tb_cust_id_unq on test_cust( cust_id); 

向表中新增三条记录:

insert into test_cust ( cust_id,name) values (1, a); insert into test_cust ( cust_id,name) values (2, b); insert into test_cust ( cust_id,name) values (3, c); select * from test_cust;

 

再次向表中增加cust_id为3的记录时,站群服务器由于cust_id有唯一约束,数据新增记录会报错:

insert into test_cust ( cust_id,库实name) values (3, b); 

 

使用on conflict语句实现更新cust_id为3的记录,将该用户的现有新无新增name修改为e:

insert into test_cust ( cust_id,name) values (3, e) on conflict(cust_id) do update set name=e; select * from test_table;

 

如果有记录的时候不做任何操作,云服务器提供商没有记录则新增,记录记录可以这样来实现:

insert into test_cust ( cust_id,则更name) values (3, e) on conflict(cust_id) do nothing; 

需要注意的是:conflict(cust_id) 中的字段cust_id必须创建有唯一约束。

定期更新,云南idc服务商数据和你一起每天进步一点点!

库实

很赞哦!(6)