问题标签 [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 投票
7 回答
64471 浏览

sql - 如何将 PostgreSQL 9.4 的 jsonb 类型转换为浮点数

我正在尝试以下查询:

(+1.0 只是为了强制转换为浮动。我的实际查询要复杂得多,这个查询只是问题的一个测试用例。)

我得到错误:

如果我添加显式转换:

错误变为:

我知道大多数 jsonb 值不能转换为浮点数,但在这种情况下,我知道纬度都是 JSON 数字。

是否有一个函数可以将 jsonb 值转换为浮点数(或为不可转换返回 NULL)?

0 投票
2 回答
3395 浏览

postgresql - jsonb 与 psycopg2 RealDictCursor

我有一个 postgresql 9.4(又名 mongodb 杀手 ;-))和这个简单的模式:

现在我填充这个,如果我选择它会显示类似

现在,如果我向 psycopg2 提出请求,

我最终会得到

你会告诉我怎么了?好吧 misc 是 str 类型。我希望它被识别为 json 并转换为 Python dict。

来自 psycopg2 文档(psycopg2/extras 页面)它指出“从数据库中读取,json 值将自动转换为 Python 对象。”

使用 RealDictCursor 似乎并非如此。这意味着我无法访问 rows[0]['misc']['age'] 因为这很方便......

好的,我可以手动使用

但如果我可以避免这种情况,因为有更好的解决方案......

附言。拥有 1500+ 代表的人可以创建 postgresql9.4 标签;-)

0 投票
1 回答
1110 浏览

postgresql - jsonb类型的plv8存储过程

这可能为时过早,postgres 9.4 仍处于测试阶段。我一直在试验 jsonb 类型。我没有任何运气将 jsonb 类型传递给 plv8 函数,它以字符串类型出现。我想知道我做错了吗?

然后,当我使用 json 运行时:

但是,当我使用 jsonb 运行时:

-G

0 投票
1 回答
2715 浏览

json - 嵌入 json 对象的唯一索引

我现在正在测试 Postgresql 9.4 beta2。我想知道是否可以在嵌入式 json 对象上创建唯一索引?

我创建了一个表名products

现在,我尝试将 json 对象插入数据列。

但是,我希望sku包包是独一无二的。这意味着 json 不能插入到 products 表中,因为sku在这种情况下它不是唯一的。

我尝试创建如下所示的唯一索引,但失败了。

有什么建议么?

0 投票
0 回答
152 浏览

postgresql - 扁平化 jsonb 与嵌套 jsonb 性能 Postgresql 9.4

扁平化:

与嵌套:

在扁平化版本中,我将存储多行并必须对其进行分组,在嵌套版本中,所有数据都将位于一行中。

哪种方式会更快,并且有很大的不同吗?

0 投票
1 回答
1152 浏览

postgresql - 2201B 错误:使用 replace() 函数时正则表达式无效

为什么 Postgres 给我这个错误

[2014-10-30 13:43:36] [2201B] 错误:无效的正则表达式:无效的转义\序列其中:PL/pgSQL 函数 normalize_username() 分配时的第 5 行

当我使用 SQL 语句时:

激活以下触发器:

表是这样创建的:

replace() 是一个简单的文本函数,对吧?我想它不应该与正则表达式有任何关系。

0 投票
2 回答
1497 浏览

arrays - PostgreSQL 9.4 将 jsonb int 数组扩展为具有行号的表

试图围绕 postgresql 9.4 jsonb 进行思考,并希望得到一些帮助来弄清楚如何执行以下操作。

给定以下示例 jsonb:

需要:仅返回“name3”数组,作为具有返回签名的表

因此生成的数据将如下所示:

假设数组可以是除零以外的任何长度,并且保证“name3”存在。

0 投票
9 回答
233531 浏览

postgresql - 如何在 Postgres 9.4 中对 JSONB 类型的列执行更新操作

查看 Postgres 9.4 数据类型 JSONB 的文档,对我来说如何对 JSONB 列进行更新并不是很明显。

JSONB 类型和函数的文档:

http://www.postgresql.org/docs/9.4/static/functions-json.html http://www.postgresql.org/docs/9.4/static/datatype-json.html

例如,我有这个基本的表结构:

插入很容易,如下所示:

现在,我将如何更新“数据”列?这是无效的语法:

这是否记录在我错过的明显地方?谢谢。

0 投票
2 回答
165 浏览

sql - 通过均匀跳过行来选择固定的行数

我正在尝试编写一个返回任意大小的代表性数据样本的查询。我想通过只选择第 n 行来做到这一点,其中n 使得整个结果集尽可能接近任意大小。

我希望这在结果集通常小于任意大小的情况下工作。在这种情况下,应该返回整个结果集。

我发现了这个问题,它显示了如何选择每 n


这是我到目前为止所拥有的:

这会导致以下错误:

错误:列“data_raw.serial”必须出现在 GROUP BY 子句中或用于聚合函数位置:23


删除这样的计算n


我还尝试将计算移至 WHERE 子句:

这也会导致错误:

错误:在 WHERE 位置中不允许使用聚合函数:108


有没有人对如何修复我的查询或更好的方法有任何想法?

我也考虑过使用随机数和概率来选择行,但我宁愿做一些确定性的事情,而不会出现聚集的可能性。

0 投票
2 回答
8812 浏览

arrays - 在 PostgreSQL 9.4 中更新 json 数组的某些数组元素

我有一张这样的桌子;

如何在没有 的情况下更新元素data->1data->3其他内容PL/*