50得票2回答
将多对多连接的右侧转换为数组。

在使用多对多关系的连接时,结果会分成多行。我想要做的是将连接的右侧转换为一个数组,这样结果就只有一行。 以三个表为例: CREATE TABLE items ( id serial primary key, title text ); CREATE TABLE tags (...

49得票2回答
在PostgreSQL中增量地刷新物化视图

在PostgreSQL中,是否有可能增量地刷新物化视图,即仅针对新数据或已更改的数据进行刷新? 考虑以下表格和物化视图: CREATE TABLE graph ( xaxis integer NOT NULL, value integer NOT NULL, ); CREAT...

34得票1回答
PostgreSQL JSON查询数组与多个值的匹配

我想在Postgres中针对jsonb类型编写一个查询,根据客户ID的数组找到相应的组。 给定这个示例表: CREATE TABLE grp(d JSONB NOT NULL); INSERT INTO grp VALUES ('{"name":"First","arr":["fo...

33得票2回答
PostgreSQL使用JSONB进行连接

我有这个SQL查询语句: CREATE TABLE test(id SERIAL PRIMARY KEY, data JSONB); INSERT INTO test(data) VALUES ('{"parent":null,"children":[2,3]}'), ('{"...

32得票4回答
在Postgres中查询物化视图的定义。

我想知道如何在Postgres中查询物化视图的定义。作为参考,我希望做的事情与查询常规视图的方式非常相似。 SELECT * FROM information_schema.views WHERE table_name = 'some_view'; 这将为您提供以下列: table_c...

32得票2回答
数据库在ALTER TABLE操作时“冻结”。

我们的生产环境今天早上在修改表格时出现了一段时间的冻结。具体来说,是在添加一个列的时候发生的。 有问题的SQL语句为:ALTER TABLE cliente ADD COLUMN topicos character varying(20)[]; 登录到我们的系统需要从这个表中进行选择操作,...

29得票2回答
Postgres是否保留记录的插入顺序?

例如,当我使用查询返回记录ID时。 INSERT INTO projects(name) VALUES (name1), (name2), (name3) returning id; 产生输出的是: 1 2 3 这些id会指向相应的插入值吗? 1 -> name1 2 -&...

28得票5回答
在多个列上选择不同的值

假设我们有一个包含四列(a、b、c、d)相同数据类型的表格。 在这些列中,是否有可能选择所有不重复的数值,并将它们作为单独一列返回?或者我需要创建一个函数来实现这个功能吗?

28得票2回答
在查询计划中,"Recheck Cond:"行与位图索引扫描相关。

这是对之前问题的评论的一个分支: Postgres 9.4.4 query takes forever 在使用 PostgreSQL 9.4 的过程中,无论是在查询计划的输出中还是在 EXPLAIN 中,位图索引扫描之后总是会出现一个Recheck Cond:行。 就像在参考问题的 ...

26得票1回答
使用 = ANY() 时不使用索引,但使用 IN 时使用索引。

表格 t 有两个索引: create table t (a int, b int); create type int_pair as (a int, b int); create index t_row_idx on t (((a,b)::int_pair)); create index t...