Postgresql通过查询进行更新的操作
我就废话不多说了,大家还是直接看实例吧~
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必须是主键或具有唯一性才可以
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
查看postgresql系统信息的常用命令操作
1.查看当前数据库实例版本. postgres=# select version(); version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.3.0 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Ha
-
快速解决PostgreSQL中的Permission denied问题
想开始学习SQL和Excel那本书,觉得自己亲手去输入才是正道.发现程序后续会用到窗口函数,可是我的mysql没有窗口函数,这本书所提供的数据脚本分别是MS SQL Sever和PostreSQL. 上午我先安装的sql sever,可是由于比较大且在安装时出现了一些小的问题(安装缓慢,服务启动不了).无奈选择了PostreSQL,体积小,安装顺利. 导入数据比较特别,先建一个表,然后把同名txt导入进去.一定要用unix方式的路径. copy这个语句先前在mysql上没有遇到过.学习下....
-
查询PostgreSQL占多大内存的操作
我就废话不多说了,大家还是直接看代码吧~ select pg_size_pretty(pg_relation_size('cuiyonghua.top_iqiyi_info')); select pg_size_pretty(pg_relation_size('cuiyonghua.top_mgtv_info')); select pg_size_pretty(pg_relation_size('cuiyonghua.top_tencent_info')); select pg_size_pre
-
如何为PostgreSQL的表自动添加分区
PostgreSQL 引进"分区"表特性,解放了之前采用"表继承"+ "触发器"来实现分区表的繁琐.低效.而添加分区,都是手动执行 SQL. 演示目的:利用 python 来为 PostgreSQL 的表自动添加分区. python版本: python3+ pip3 install psycopg2 一.配置数据源 database.ini 文件:记录数据库连接参数 [adsas] host=192.168.1.201 database=adsa
-
PostgreSQL的generate_series()函数的用法说明
我就废话不多说了,大家还是直接看代码吧~ SELECT generate_series(1,12) AS month; SELECT generate_series(1,12,1) AS month; SELECT generate_series('2020-01-01'::DATE,'2020-12-31'::DATE,'1 month'::INTERVAL) AS first_of_month; 补充:PostgreSQL使用generate_series函数 填充数据(插入数据) sele
-
PostgreSQL 修改表字段常用命令操作
--数据库.模式.表名 "identities"."Test"."tab_test" --修改字段名 ALTER TABLE "identities"."Test"."tab_test" RENAME "u_name" to realname ; --添加字段 ALTER TABLE "identities"."Test".&q
-
使用Postgresql 实现快速插入测试数据
1.创建常规的企业信息表 create table t_centerprises( objectid bigint not null, /*唯一编号(6位行政区号+6位sn)*/ divid uuid not null, /*行政区唯一代码*/ name text not null, /*企业名称*/ address text not null, /*企业地址*/ post text, /*企业邮编*/ contacts text, /*联系人*/ tel text, /*联系电话*/ fax
-
postgresql 导出建表语句的命令操作
我就废话不多说了,大家还是直接看命令吧~ pg_dump -h host -U postgres -d dbname -O -s -t "table_name" > name.sql 补充:PostgreSQL使用pg_dump导出单个数据表的insert语句 PostgreSQL自带的pgadmin4工具没有办法生成数据表的insert语句,这使得想要提取单个表的数据,插入到不同环境的相同表中变成很麻烦的一件事,使用PostgreSQL的pg_dump工具可以实现该功能. 使用
-
PostgreSQL查看版本信息的操作
1.查看客户端版本 psql --version 2.查看服务器端版本 2.1 查看详细信息 select version(); 2.2 查看版本信息 show server_version; 2.2 查看数字版本信息包括小版号 SHOW server_version_num; 或 SELECT current_setting('server_version_num'); 3.注意事项 SELECT current_setting('server_version_num');返回类型为text,
-
基于PostgreSQL 权限解读
1 public权限解读 用户默认情况下具有public权限,public默认具有创建和使用schema的权限,因此意味着可以在schema中创建对象(包括表).列出schema中的对象,并在其权限允许时访问它们. 所以创建数据库或schema完成后做的第一件事是 1.1 创建数据库完成后 --回收schema的public权限 --revoke all on schema public from public; --正常情况使用这个 revoke all on schema public,ti
-
浅谈PostgreSQL消耗的内存计算方法
wal_buffers默认值为-1,此时wal_buffers使用的是shared_buffers,wal_buffers大小为shared_buffers的1/32 autovacuum_work_mem默认值为-1,此时使用maintenance_work_mem的值 1 不使用wal_buffers.autovacuum_work_mem 计算公式为: max_connections*work_mem + max_connections*temp_buffers +shared_buffe
随机推荐
- display和visibility的区别示例介绍
- Python实现获取照片拍摄日期并重命名的方法
- 如何一行行地读取文件?
- javascript 随机广告代码(图片广告)
- swfupload使用代码说明
- iOS动画教你编写Slack的Loading动画进阶篇
- MultiLine 换行后实现读取不换行的具体思路
- WPF实现时钟特效
- javascript hashtable实现代码
- Python脚本文件打包成可执行文件的方法
- Java并发编程示例(八):处理线程的非受检异常
- 设置CA证书来强化PostgreSQL的安全性的教程
- 用示例说明filter()与find()的用法以及children()与find()的区别分析
- jQuery动画效果animate和scrollTop结合使用实例
- js Math 对象的方法
- linux服务器系统CentOS、uBuntu、Gentoo、FreeBSD、Debian的比较
- java代码之谜运算符篇
- php实现xml转换数组的方法示例
- c#判断email地址是否为合法
- 简单实现限定phpmyadmin访问ip的方法