问题标签 [postgresql-9.1]

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 投票
0 回答
272 浏览

hibernate - 如何将postgres文本类型映射到ejb3中的@LOB

如何将postgres中的文本类型映射为@LOB和ejb3中的fetchtype.lazy?

0 投票
2 回答
3732 浏览

postgresql - 列出 Postgresql 数据库中的所有 UNLOGGED 表

从 9.1 版开始,PostgreSQL 支持创建不使用 WAL 并在任何数据库恢复期间被截断的 UNLOGGED 表。请参阅文档: create unlogged table

PostgreSQL 在哪里存储信息,关系是否为 UNLOGGED?我正在寻找一个查询来列出所有未记录的关系。

提前致谢

0 投票
2 回答
1976 浏览

ejb-3.0 - 如何在 EJB3 中的 Entity 类中访问 EntityManager

我需要执行一个数据库查询,以便在多对多关联表中设置额外的列“按列排序”。所以我需要从 Entity 类内部访问 db 序列,然后选择序列的 nextval 并将其分配给@prepersist 生命周期回调方法中的 order_by 列。

如何从 setOrderBit () 中访问 entitymanger?我如何将 Entitymanager 传递给它?或者我如何在实体类中执行本机查询?

0 投票
2 回答
4944 浏览

java - 针对 PGPool II 的 Java 查询导致“未命名的准备好的语句不存在”错误

我有一个使用 Postgres 数据库的 Java 应用程序,我正在尝试引入 PGPool 以扩展我的数据库。我遇到了 Postgres 抛出以下错误的问题:unnamed prepared statement does not exist. 在 Postgres 上启动日志记录后,我看到我的应用程序执行的每个选择语句都会发生以下情况:

但有时,在解析/绑定/执行步骤之间,PGPool 会执行一些额外的查询,因此日志如下所示:

据我了解,因为查询是未命名的,所以如果在执行未命名查询之前在该数据库会话期间有另一个查询进入,它会被 Postgres 丢弃。因此,因为 PGPool 有时会在解析/绑定/执行步骤之间发出这些额外的查询,所以会导致查询被丢弃。

我的第一个想法是,也许我的 Java 应用程序不需要为每个查询发送解析/绑定/执行语句。但看起来这是自 JDBC 版本 3 和 Postgres 7.4 http://jdbc.postgresql.org/documentation/head/server-prepare.html以来 Postgres JDBC 驱动程序的默认行为。我想我可以尝试完全禁用服务器端准备好的语句,但是文档没有指定如何做到这一点,而且我不确定这是我想做的事情。

我的第二个想法是让 PGPool II 停止发送这些元数据查询。由于我只是想将 PGPool 用作负载均衡器,我真的不明白为什么它需要了解我的表元数据的所有信息。我在 PGPool 源的 is_system_catalog 方法中跟踪了执行这些查询的代码:https ://github.com/iakio/pgpool-II/blob/master/pool_select_walker.c#L256 看来 PGPool 想知道关于我的表关系出于某种原因,不幸的是我没有看到任何方法来禁用该行为。

任何有关如何解决此问题的见解将不胜感激。

关于我的环境的一些信息:

更新: 我找到了解决该问题的方法。通过放置protocolVersion=2JDBC URL,它基本上告诉 Postgres JDBC 驱动程序不要使用服务器端准备好的语句。这允许我的应用程序在我的数据库前使用 PGPool II 时运行。不过,我不得不回退到 JDBC 版本 2 协议才能使用 PGPool,这让我感到困扰。

0 投票
1 回答
1205 浏览

postgresql - 如何使我的数据库模式更新脚本在 PostgreSql 9.1 中工作?

我的应用程序使用 PostgreSQL 9.1 数据库。我们正处于测试阶段,我们偶尔会在我们的 PostgreSQL 模式中发现错误。我们已经编写了一个安装程序并且正在运行,但是现在我们已经到了在我们发布下一个版本时需要更新的安装点。

我在这里发布了一个较早的问题,询问如何让我的脚本做出决定。我的答案是使用 DO 语句。这很好用,但我遇到了问题。

我们在数据库中添加了一个表,用于跟踪安装的最后一个版本。我的脚本如下所示:

大多数语句都是简单的东西,如 CREATE 或 DROP 语句。但是在下一个版本中我必须做的一件事是将代码更改应用于存储的函数。该函数也是用 plpgSQL 编写的。我在上面的代码中使用了三 (3) 个 $$$ 符号,因为这个存储过程使用了两 (2) 个 $$ 符号,因为我认为这会使嵌套的 plpgSQL 看起来不同,并且不会使第二组美元符号终止第一个.

然而,当 PostgreSQL 在我的存储过程中命中 DECLARE 语句时,我得到了一个错误。它没有看到函数的文本被引用。

dong this 的正确方法是什么?我是否应该将存储过程放在此 DO 块之外并使用 CREATE OR REPLACE 语句来声明它?或者有没有办法可以将代码保持在条件内?

托尼

0 投票
1 回答
671 浏览

sql - PostgreSQL - 使用数组排序。我可以动态创建数组吗?

我正在使用 PostgreSQL 9.1.13

这是我到目前为止所做的:

现在我已经使用了上述查询并手动创建了 2 个数组。

我需要做的是动态创建用于Order By(直接使用2个查询)的2个数组

有可能这样做吗?

谢谢

0 投票
2 回答
2511 浏览

ruby - 如何使用 ActiveRecord 将数组插入 Postgresql 表?

我已经active_record设置为使用 Postgresql 数据库。其中一列是character varying[] (基本上是一个 varchar 数组)。

无论如何,我的导入例程然后读取一个制表符分隔的文本文件并插入记录。一切都很好,直到我到达一个数组。应转换为数组的列以逗号分隔。但是该行本身是制表符分隔的。

我正在导入的数据示例如下所示(制表符分隔):

Col3 像 (ruby): 一样被导入 col3.split(/,/),这给了我一个 Ruby 中的数组。但是 active_record 爆炸了:

PG::Error: ERROR: 数组值必须以“{”或维度信息开头 (ActiveRecord::StatementInvalid)

如何正确插入该列?
此外,有时 col3 将为 NULL。

0 投票
2 回答
1887 浏览

sql - 为什么 count(*) 在这个子查询(postgresql)中返回多个结果?

我想将 count(*) 查询的结果分组到值桶中。我正在 dellstore2 postgresql 示例数据库上对此进行测试。我在下面的查询返回正确的答案,但对表中的每一行执行一次(数千个相同的结果)。我可以通过添加LIMIT 1查询的结尾来解决这个问题,但我想了解为什么我会得到重复项,以防它指出我的方法存在更广泛的问题。查询是:

编辑 Andomar 的回答也让我找到了以下方法(简而言之,改编自 SQL 中的一个示例(O'Reilly))。这让我可以将存储桶放在一列中,每个存储桶/答案配对都有一行。我想我会把它包括在那个用例的任何人身上:

0 投票
1 回答
11527 浏览

linux - 如何在 Debian Lenny 中修复 apt-get update 以便可以安装 PostgreSql 9.1

我试过了

在 Debian Lenny 上,但在下面出现错误。如何解决这个问题以便可以安装 PostgreSql 9.1?

sources.list 包含:

0 投票
3 回答
20265 浏览

sql - 在 SELECT 中创建数组

我正在使用 PostgreSQL 9.1,我有这个数据结构:

我需要一个产生这个结果的查询:

A=1,总共 4 行,A=1,部分计数(3 行有 c 值,2 行有值,......)

  • “A”列的不同值
  • 与“A”值相关的所有行数
  • 数组包含与“A”值相关的所有元素以及自身的相对计数

数组所需的排序基于每个组的计数(如示例 3、2、1、1)。