问题标签 [postgresql-9.4]

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.

0 投票
1 回答
560 浏览

postgresql - 使用 -c 选项设置 psql 边框样式

我想将几个 postgresql 函数定义保存到一个文件中。我有一个工作脚本,但边框样式似乎默认为“1”,我希望边框为“2”。我尝试过额外的-c '\pset border 2',但是,这似乎没有任何影响。从文档中,我知道.psqlrc传递-carg 时忽略了哪些文件,但似乎应该有一种方法来控制您对输出的偏好。

使用时如何控制边框和任何其他\pset选项(例如null-c

我正在使用 PostgreSQL 9.4

0 投票
1 回答
11657 浏览

postgresql - 错误:类型时间戳的无效输入语法:“end_time”

postgresql 的新手,jsonb 的新手。我正在尝试过滤一组对象:

我的查询:

我得到错误:

0 投票
0 回答
503 浏览

json - PostgreSQL 将 json 转换为复合类型

我正在尝试使用 POstgreSQL 9.4 中的新 json 函数,发现它们中的大多数都非常有用。例如,将 Composite 类型转换为 json 以帮助后端进程更轻松地映射函数结果。

但我无法工作的是另一种方式,将 json 字符串转换为 Composite 类型的对象。

请注意,这里使用函数调用 to_json(...) 来模拟具有复合类型确切结构的 json 字符串

代码返回

0 投票
2 回答
61 浏览

sql - 是否可以在检查约束中引用整行?

我想使用CHECK约束而不是触发器为整行调用我自己的验证函数 - 可能吗?

0 投票
2 回答
1665 浏览

ruby-on-rails - 没有时区、间隔和夏令时的时间戳

我正在开发一个 Rails 应用程序,它将所有日期存储到 PostgreSQL 为“TIMESTAMP WITHOUT TIME ZONE”。(Rails 处理应用程序层的时区,对于这个应用程序来说是“欧洲/柏林”。)不幸的是,夏令时 (DST) 成为一个问题。

简化的“项目”表包含以下列:

项目开始started_at并运行数duration天。

现在,假设只有一个项目于 2015 年 1 月 1 日 10:00 开始。由于这是“Europe/Berlin”并且是 1 月(没有 DST),因此数据库中的记录如下所示:

它应于 2015 年 6 月 30 日 10:00(欧洲/柏林)结束。但现在是夏天,所以 DST 适用,“欧洲/柏林”的 10:00 现在是 UTC 的 08:00。

因此,使用以下查询查找所有持续时间已过的项目对于跨 DST 边界开始/结束的项目不起作用:

我想如果上面的 WHERE 在时区“欧洲/柏林”而不是“UTC”中进行计算,那将是最好的。我已经尝试了一些东西,::TIMESTAMTZAT TIME ZONE都没有奏效。

附带说明:根据 PostgreSQL 文档,+ INTERVAL在 DST 方面,应该处理与“24 小时”间隔不同的“1 天”间隔。添加天数会忽略 DST,因此 10:00 始终保持为 10:00。另一方面,当添加小时数时,如果您以一种或另一种方式跨越 DST 边界,则 10:00 可能会变为 09:00 或 11:00。

非常感谢任何提示!

0 投票
2 回答
74 浏览

sql - 根据百分比查询投票表顶部项目

我有一张投票表,如下所示:

id, type, scope, region, UserId, ItemId, updatedAt, createdAt

我正在尝试根据赞成票/总票数按百分比计算排名靠前的项目。

最后一块是我想要一个用于两个时间戳之间WHERE的投票的条款。createdAt

我觉得这是一个非常正常的查询获取统计信息的事情。但我不知道该怎么做。

我得到的最接近的是:

这与需要的东西相去甚远。因此,为什么我会在这里得到一些帮助。很难在这类东西上找到好的 sql 资源。

0 投票
3 回答
1487 浏览

postgresql - Postgresql大表更新变慢

我在一个大表(例如 8 GB)上运行更新。这是对表中 3 个字段的简单更新。我在 postgresql 9.1 下运行它没有问题,它需要 40-60 分钟,但它有效。我在 9.4 数据库中运行相同的查询(新创建,未升级),它开始更新正常但随后变慢。它只使用约 2% 的 CPU,如果 IO 为 4-5MB/s 并且它就坐在那里,那么它的水平。没有锁,没有其他查询或连接,只有服务器上的这个单一更新 SQL。

SQL如下。“查找”表有 12 条记录。查找只能返回一行,它将离散比例(SMALLINT,-32768 .. +32767)分解为非重叠区域。“src”和“dest”表大约有 6000 万条记录。

我以为我的磁盘速度变慢了,但我可以并行复制 1 GB 文件来执行查询,它以 >40MB/s 的速度运行,而且我只有一个磁盘(它是一个带有 ISCSI 介质的 VM)。所有其他磁盘操作均不受影响,IO 带宽充足。与此同时,PostgreSQL 只是坐在那里做的很少,运行得很慢。

我有 2 台虚拟化 linux 服务器,一台运行 postgresql 9.1,另一台运行 9.4。两台服务器都具有几乎相同的 postgresql 配置。

有没有其他人有类似的经历?我的想法不多了。帮助。

编辑 查询“运行”了 20 个小时,我不得不终止连接并重新启动服务器。令人惊讶的是,它并没有通过查询终止连接:

并服务器产生了以下日志:

服务器重启也需要很长时间,产生以下日志:

“邮局主管已命令此服务器进程回滚当前事务并退出,因为另一个服务器进程异常退出并且可能损坏了共享内存” - 这是否表明 PostgreSQL 中存在错误?

编辑 我测试了 9.1、9.3 和 9.4。9.1 和 9.3 都没有减速。9.4 一直在大笔交易上放慢速度。我注意到,当事务启动时,htop 监视器指示 CPU 高且进程状态为“R”(正在运行)。然后它逐渐变为低 CPU 使用率和状态“D” - 磁盘(见截图磁盘等待)。我最大的问题是为什么 9.4 与 9.1 和 9.3 不同?我有十几台服务器,并且全面观察到这种效果。

0 投票
1 回答
38 浏览

sql - pgSQL NOT IN, EXIST, INNER JOIN - 搜索表之间的差异 (id)

我需要在 tab_b.id_tab_a 字段中的 tab_b 中找到哪些行(tab_a.id_taba)不存在

我有两张桌子。tab_a, tab_b

tab_a 字段: id_taba(2,3,4,5), name, name2

tab_b 字段 id_tabb(0,1,2,3,4,5,6,7,8), id_tab_a(0,1,2,3), field1, field2,

当我搜索

它不起作用,但如果在同一个语句中我将语句交换为:

它显示 2 行:“0”、“1”

我正在尝试获取 tab_a.id_taba 中的哪些行在 tab_b.id_tab_a 中没有

请给我一个提示和解释,为什么它不起作用。

0 投票
1 回答
86 浏览

java - 获取从 file.data 读取的数据

我不确定我需要做什么来比较这两个元素,我知道我需要读取数据文件并且我有一个类来做到这一点。

另外,当我读取数据文件时,我没有错误,所以我想我读取正确,此外,我已经使用Eclipse Luna 4.4.0PostgreSQL 9.4实现了将 java 与数据库正确连接。

这是我拥有的主要课程的一部分:


编辑

我已经用另一个更准确和最简单的答案替换了我的答案。

我需要一个关于如何获取例如从数据文件中读取的第一行的示例,如果我知道如何获取数据,也许我会做下一部分。我想我应该以某种方式使用 fileUtilities 但不知道是什么。

这是 file.data 的内容:

我需要更新的表具有相同的内容。

0 投票
1 回答
317 浏览

java - 将参数从列表传输到preparedStatement

我有这个准备声明:

我正在尝试这样做:

FileContents 以这种格式读取文件数据:

如果我做:

System.out.println(row);

我得到与文件数据相同的退出。

我的问题是,如何将数据文件的数据传输到

像preparedStatement

等等

编辑

如何创建文件内容,

我在主类中使用此指令:

fileUtilites 的实现是: