![](https://img-blog.csdnimg.cn/20210802160817893.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
PostgreSQL
PostgreSQL
BasicLab基础架构实验室
本人深耕基础架构领域,曾在国内500强大厂研发企业级百亿量级吞吐中间件,擅长Java语言、Go语言、Python语言、C语言、NodeJS、Web、Linux、深度学习、大数据、云原生等
展开
-
PostgreSQL 导入 .gz 备份文件
替换your_username、your_database和your_backup_file为你的PostgreSQL用户名、数据库名和解压后的备份文件名。如果备份文件是使用pg_dump创建的,并带有schema和数据,以上步骤将会恢复数据库。如果备份文件是纯SQL脚本,则可以直接通过psql导入。要在PostgreSQL中导入.gz压缩的备份文件,你需要先解压缩该文件,然后使用psql工具导入。确保你有足够的权限来导入数据库。原创 2024-07-12 19:10:55 · 277 阅读 · 0 评论 -
Postgresql CopyManager 流式批量数据入库
上面4000000条数据入库大概40秒完成,pg数据库的配置是4C4G,在因为一次性数据入库比较大,在上述数据入库阶段,pg数据库的CUP出现冲高至200%-300%之前,建议使用该方法入库时调整一次性入库的数据流大小,尽可能避免pg的冲高,防止影响其他业务的数据库操作。另外上面的例子是先把对象写进文件,在把文件解析成流,这样操作是比较麻烦的,在实际使用的过程可以直接将专程对象流,把文件生成和转流这一步省略。原创 2023-06-09 15:37:13 · 878 阅读 · 2 评论 -
Centos7 备份 PostgreSQL 数据脚本
最近工作中涉及到需要备份postgresql全量数据,需要定时任务执行脚本执行备份,特此记录便于日后查阅。 数据库备份脚本 bak_data_10.0.61.22.sh,内容如下: 配置pgsql数据库密码,psql 和 pg_dump 等工具会自动读取环境变量PGPASSWORD的值作为连接密码免密操作,内容如下: 配置定时任务,内容如下: 到此 Centos7 备份 PostgreSQL 数据脚本介绍完成。原创 2022-12-05 10:31:51 · 482 阅读 · 0 评论 -
Postgresql 外部表插件postgres_fdw的安装和使用
PostgreSQL的数据库逻辑上是相互独立的,和Oracle类似,如果要访问其他数据库,需要做跨库操作,Postgres本身提供了一些扩展,比如dblink,pgsql_fdw等,高版本的建议使用postgres_fdw,也就是pgsql_fdw的升级版。而postgres_fdw实现的是各个postgresql数据库及远程数据库之间的跨库操作,功能和dblink一样。首先是安装问题,因为这个工具是自带的扩展工具,可以直接到postgres的解压目录下。postgres_fdw使用很简单,分为四步。原创 2023-02-03 10:52:44 · 777 阅读 · 0 评论 -
PostgreSQL 备份与还原命令 pg_dump
postgresql数据库的备份和还原命令pg_dump 更详细: 到此 PostgreSQL 备份与还原命令 pg_dump介绍完成。原创 2022-12-05 10:17:15 · 2536 阅读 · 0 评论 -
PostgreSQL 分组聚合查询中 filter 子句替换 case when
我也相信很多人开发者写出来的SQL和上面的SQL基本差不多,这种SQL不仅很长而且很难都,更致命的是这种SQL进行了五次全表扫描,在不考虑缓存命中的的情况下,这种SQL的查询时间是上面filter和case when子句的五倍,我们可以看一下这个长SQL的查询计划。从上面的结果我们可以看出来俩种语句不仅结果一样而且产生的执行计划也是一致的,并且俩个语句值进行了一次权标扫描就计算出了结果,在平时的开发中,很多开发者为了实现相同的结果可能要进行五次权标扫描,很可能会写出以下的相同查询结果但是不同性能的SQL。原创 2022-11-28 18:48:30 · 1362 阅读 · 0 评论 -
PostgreSQL 存储过程基本语法
【代码】Postgresql 存储过程基本语法。原创 2022-10-26 10:04:06 · 869 阅读 · 0 评论 -
PostgreSQL中array的常见用法
【代码】PostgreSQL 中array的常见用法。原创 2022-10-08 16:01:07 · 3185 阅读 · 0 评论 -
PostgresSQL查询数据中用逗号隔开的数据以及@>与<@的区别
对于这种需求在mysql中用FIND_IN_SET或者正则表达式可以实现,但是我在pgsql中试了下好像不怎么生效,所以我们要先用string_to_array把字段隔开然后再用@>查询包含某个字符的数据,如下图所示,我们看到包含2的都被查了出来。在pgsql中,@>的意思包含,除此之外还有换成了原创 2022-10-08 15:59:53 · 5470 阅读 · 0 评论 -
PostgreSQL 新增数据返回自增ID
最近在项目中使用Postgresql插入数据需要返回自增ID,特此记录便于日后查阅。<insert id="copyMainGroup" parameterType="com.openailab.oascloud.common.model.tcm.TrainingGroupBO"> <selectKey resultType="java.lang.Integer" ...原创 2020-03-16 16:24:00 · 5701 阅读 · 8 评论 -
PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
在项目中使用 ON CONFLICT DO UPDATE SET 语法进行批量数据合并插入&更新,如果一条SQL语句中出现多条相同KEY的数据(冲突键,或冲突约束),会报错。在SQL标准中,MERGE 也有同样的问题,因为一次请求中对行的处理,顺序是不固定的,数据库不知道应该以哪条为最后需要保留的数据,报错如下:ERROR: ON CONFLICT DO UPDATE comma...原创 2020-03-04 17:49:04 · 17002 阅读 · 5 评论 -
Ubuntu 安装PostgreSQL
最近项目需要再Ubuntu中安装PostgreSQL-11.4,特此记录便于日后查阅。1、下载$ wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz$ tar -zxf postgresql-11.4.tar.gz注:如果下载较慢可以直接拿本文附件中的安装包。2、安装安装所需要的依赖...原创 2020-03-03 18:25:34 · 5631 阅读 · 6 评论 -
Centos7 安装PostgreSQL-16.1
最近项目中需要用到PostgreSQL,所以我需要在服务器上进行安装,顺便记录一下安装过程,便于日后查阅。1、环境准备本次安装的 PostgreSQL 版本是 11.4,Centos是7.6,其他的没什么了。2、安装步骤首先需要配置一些必要的环境,命令如下: $ yum install -y vim lrzsz tree wget gcc gcc-c++readlin...原创 2020-02-24 19:30:16 · 1248 阅读 · 0 评论 -
PostgreSQL(MySQL)插入操作传入值为空则设置默认值
1、mysql写法IFNULL(p1,p2),如果p1有值就是p1,如果p1是空,则值为p2<insert id="insertForeach" parameterType="java.util.List" > insert into user_message ( skip_id ) values <foreach col...原创 2019-12-28 06:13:35 · 5326 阅读 · 3 评论 -
PostgreSQL(MySQL)插入操作遇到唯一值重复时更新
1、mysql写法<insert id="insertOrUpdateNew"> insert into test (a,b,c) values (#{a},#{b},#{c}) on duplicate key update c = values(c)</insert> <inser...原创 2019-12-27 16:08:52 · 3063 阅读 · 0 评论 -
PostgreSQL(MySQL)联合唯一索引存在空值时唯一约束失效
问题:当Mysql中建立的联合索引, 只要索引中的某一列的值为空时(NULL),即便其他的字段完全相同,也不会引起唯一索引冲突。原因:Mysql官方文档中有这样的解释A UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if y...原创 2019-12-27 15:52:54 · 2665 阅读 · 2 评论 -
PostgreSQL删除数据库报"ERROR: There is 1 other session using the database."
问题:每当我尝试删除数据库时,我得到:ERROR: database "pilot" is being accessed by other usersDETAIL: There is 1 other session using the database.我用的时候:SELECT pg_terminate_backend(pg_stat_activity.pid)FROM...原创 2019-07-27 12:45:16 · 4993 阅读 · 0 评论 -
Ids for this class must be manually assigned before calling save on String ID
Already read lots of questions about the same issue, but I still not be able to solve this problem.I need to have aStringprimary key on my database.import javax.persistence.Entity;import javax...原创 2019-08-02 09:53:04 · 372 阅读 · 0 评论 -
"hibernate_sequence" does not exist
org.postgresql.util.PSQLException: ERROR: relation "hibernate_sequence" does not exist Position: 17 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)...原创 2019-08-02 09:54:45 · 1444 阅读 · 0 评论 -
解决org.postgresql.jdbc.PgConnection.createClob() 方法尚未被实作
SpringBoot集成PostgreSql启动的时会报"org.postgresql.jdbc.PgConnection.createClob() 方法尚未被实作"问题,并且不影响程序运行,但是看到非常难受,解决方法:application.properties增加以下属性spring.jpa.properties.hibernate.dialect = org.hibernate.d...原创 2019-08-02 09:56:00 · 4869 阅读 · 0 评论 -
Apollo-1.4.0 适配 PostgreSQL-11.4数据库(镜像)
由于工作需要,Apollo数据源要改成PostgreSQL,而目前官方只支持Mysql数据源,所以需要手动修改Apollo源码,目前Apollo最新版本是 1.4.0,我适配的 PostgreSQL版本是 11.4,PostgreSQL maven依赖的版本是 42.2.5,数据表初始化脚本在 \scripts\sql 目录下,有两个数据库脚本,分别是pg-configdb.sql 和 pg-p...原创 2019-08-05 16:17:17 · 2161 阅读 · 2 评论