问题标签 [postgresql-9.5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 直接按块范围索引(BRIN)标识符查询 Postgres 表
我有N台客户端机器。我想用 BRIN 索引的不同分区加载每台机器。
这需要:
- 使用预定义的分区数创建 BRIN - 等于客户端计算机的数量
- 从在 BRIN 分区标识符上使用WHERE而不是在索引列上过滤的客户端发送查询
主要目标是在将单个表从 postgres 加载到分布式客户端机器时提高性能,保持客户端之间的行数相等 - 如果行数不除以机器数,则接近相等。
我目前可以通过维护新列来实现它,该列将我的表分成等于客户端机器数量(或row_number() over (order by datetime) % N
即时使用)的桶数。这种方式在时间和内存方面效率不高,而 BRIN 索引看起来是一个不错的功能,可以加快此类用例的速度。
3 台客户端机器的最小可重现示例:
预期输出:
- 客户 1
- 客户 2
- 客户 3
问题:
如何使用预定义的分区数创建 BRIN 并运行过滤分区标识符而不是过滤索引列的查询?
可选地,BRIN(或其他 pg 好东西)可以加快从单个表并行加载多个客户端的任务的任何其他方式?
postgresql - 临时更改当前时间为静态值
我需要在当前会话中手动设置 postgres 一些值,例如2016-01-25 12:13:14
当前时间。
也就是说,我需要临时的,在调用时LOCALTIMESTAMP(0)
返回这个静态值:2016-01-25 12:13:14
而不是真正正确的日期时间。
这是可能的?如果是,如何?
postgresql - postgresql:错误安装和运行 postgresql-9.5
我安装了两个 postgresql,9.5 应该使用端口 5433,9.3.4 应该使用端口 5432:
我写了一个脚本来安装 postgresql-9.5 并从 9.3.4 迁移到 9.5
问题0:postgresql-9.5无法启动成功,为什么状态为在线
安装过程中的输出:
然后我做了一些测试:
以上错误是怎么回事?
顺便说一句,另一个错误是:
问题1:为什么我不能使用/usr/lib/postgresql/9.5/bin/psql来登录数据库,但是我可以通过/opt/pkgs/postgresql-9.3.4/bin/psql来做到这一点
错误是“未定义的符号:PQsslInUse”。这是什么意思?为什么我不能使用 /usr/lib/postgresql/9.5/bin/psql 登录数据库,但我可以通过 /opt/pkgs/postgresql-9.3.4/bin/psql 来登录?
谢谢
顺便说一句,我运行以下命令进行迁移:
谢谢
postgresql - 如何在 Postgres 中更新两列之一的冲突?
upsert
当表中的两列之一发生冲突时,是否可以在 Postgres 9.5 中执行?基本上我有 2 列,如果任一列抛出唯一约束违规,那么我想执行更新操作。
sql - ON CONFLICT DO UPDATE 缺少 FROM 子句
我有一个简单的表(id 和 name 列,都是唯一的),我正在导入一个制表符分隔的 CSV 文件。
我正在运行 psql 9.5,ON CONFLICT
如果 ID 已经存在,我想尝试更新 name 列的新功能。
我收到此错误:
不太确定这里出了什么问题。
json - Postgres 是否允许 json[] 或 jsonb[]?
所以我一直试图以0运气在互联网上找到答案。
postgres 是否支持在单个字段中包含对象数组,例如
并将其保存到单个字段?
还有你会如何演奏单曲INSERT
或UPDATE
会是:UPDATE db SET value='[{ key: val }, { key: val }]'
??
sql - 插入冲突的回滚触发器
我有这个:
将 postgresql 更新到 9.5 版后,我修改了函数 upsert_user 以使用新指令 ON CONFLICT:
问题是,现在,即使插入 users 表失败,也会在privileges_entities 表中插入新行。如果用户的插入导致冲突,是否可以回滚触发器?
postgresql - 如何在 IF-THEN-ENDIF 条件下使用存储过程返回布尔值?
vip_until
在一个文字游戏的 PostgreSQL 表中,我通过列或grand_until
具有未来有效日期的列来跟踪付费玩家:
我写了一个简短的存储过程来检查:
然后我尝试在另一个存储过程中使用上述函数:
但我得到这个语法错误:
如何is_vip()
正确使用该功能?