PostgreSQL
__风__
这个作者很懒,什么都没留下…
展开
-
PostgreSQL主外键延迟测试
默认建立主外键会扫描已有的记录来确定是否有不符合条件的记录,这一过程hang住后续的update操作,因此如果表很大,会对业务产生比较大的影响。//需要superuser权限。实际上PostgreSQL实现主外键主要用的是trigger,只是trigger是PG内部实现的,如下。在某些特殊情况下需要先插入字表,但是关联字段的值并不存在与主表中该如何处理。可以使用not valid参数来避开对已有数据的验证。第二种情况,如果对已有数据的两张表要建立主外键关系。3. 插入不满足条件的记录。原创 2023-03-08 14:06:27 · 446 阅读 · 0 评论 -
libpq Copy In 数据测试过程
文本方式1. 创建测试表sde=# \d testTable “sde.test”Column | Type | Collation | Nullable | Default--------±--------±----------±---------±--------id | integer | | |info | text | | |2. 插入两条记录string sql = “COPY原创 2020-08-31 10:30:55 · 1135 阅读 · 0 评论 -
统计PostgreSQL缓存情况
可以通过以下步骤查询PostgreSQL数据的缓存情况。1. 创建pg_buffercache扩展。sde=# create extension pg_buffercache;CREATE EXTENSION2. 创建该extension后,后台会创建pg_buffercache视图用来记录缓存情况,其定义如下,实际上是简历在表函数上的一个视图sde=# \d+ pg_buf...原创 2019-10-28 14:52:20 · 2430 阅读 · 0 评论 -
ArcGIS Desktop+PostgreSQL(Row Level Security)分区域编辑
需求: 使用ArcGIS Desktop多个人同时编辑同一个图层,但是每个人只编辑属于自己的区域,别的区域没有权限编辑。可以使用PostgreSQL的Row Level Security实现。方法如下: 测试数据: 需要进行编辑的点图层,名字为sde.gis_poi。 参考区域图层:testpolygon,数据状态如下图...原创 2019-07-23 10:07:32 · 423 阅读 · 0 评论 -
PostgreSQL(ERROR: cache lookup failed for function 1)错误解决
昨天接到同事求助,前端应用连接某个PostgreSQL 9.6.13库上后无法创建某个Type,远程发现是因为创建Type的时候需要创建c的存储过程,在创建c的存储过程中报错,导致无法创建该Type。错误如下: test=# CREATE OR REPLACE FUNCTION sde.st_geometry_release()test-# RETURNS texttest-#...原创 2021-01-15 16:42:30 · 2238 阅读 · 3 评论 -
PostgreSQL求中值问题
偶碰同事的一个需求,如下描述:数据库中怎么从一个设备轨迹中抽取三个点,起始点和中间点(根据时间字段)怎么取?每个设备的轨迹点个数不同。可以使用PostgreSQL的有续集进行处理,测试过程如下所示:录入测试数据:sde=# create table test(deviceid int,createtime timestamp, position st_geometry);CRE...原创 2019-07-18 11:27:50 · 631 阅读 · 0 评论 -
PostgreSQL With语法例子
今天看到网上的例子,可以参考PostgreSQL聚合例子,如下:postgres=# create table test(id int, info text); CREATE TABLE postgres=# insert into test values (1,'test1'); INSERT 0 1 postgres=# insert into test values (...原创 2018-09-21 14:48:09 · 1313 阅读 · 0 评论