Postgre SQL数据库实现有记录则更新无记录就新增的方法
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍"Postgre SQL数据库实现有记录则更新无记录就新增的方法",在日常操作中,相信很多人在Postgre SQL数据库实现有记录则更新无记录就新增的方法问题上存在疑惑,小编查阅了各
千家信息网最后更新 2024年11月23日Postgre SQL数据库实现有记录则更新无记录就新增的方法
这篇文章主要介绍"Postgre SQL数据库实现有记录则更新无记录就新增的方法",在日常操作中,相信很多人在Postgre SQL数据库实现有记录则更新无记录就新增的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Postgre SQL数据库实现有记录则更新无记录就新增的方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在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必须创建有唯一约束。
到此,关于"Postgre SQL数据库实现有记录则更新无记录就新增的方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
更新
方法
数据
数据库
学习
用户
字段
更多
帮助
实用
接下来
关键
关键字
再次
功能
名称
文章
时候
理论
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
微型数据库有哪些
信用卡信息基础数据库什么意思
成都工业软件开发机构
社区网络安全隐患自查情况
什么是服务器网络异常
如何搭建一个虚拟机配置为web服务器
当今网络安全如何防范
网民网络安全感满意度调查表
襄阳凡艺互联网科技
2020年网络安全知识竞
上海网络技术招聘信息
网络安全管理技能题库
12123网提示服务器
1000mb带宽服务器如何搭建
服务器性能正常域名访问不了
软件开发编程实现一个计算器
新基建需要怎样的网络安全观
网络安全一堂课
南昌软件开发技术
政府网站网络安全应急处置预案
服务器8g只显示3g可用
网络安全方面你有哪些收获
js循环取json数据库
银行贷款数据库的名称
软件开发团队建设
网络安全电子小报资料
软件开发0税率是怎么回事
国税局网络安全观摩
网络安全硕士留学一年学费
极路由 ftp服务器