【发布时间】:2023-02-24 03:55:47
【问题描述】:
我有一个包含一些基本 jsonb 的表,对于这个例子,我们称之为交易
CREATE TABLE transactions (
transaction_id text NOT NULL,
body jsonb,
);
所以在体内我有一些我们可以忽略的数据,但它是一个类似的对象 {“价格”:10}等
我想添加一个退款键,并将其默认为一个空数组,或者在一个查询中将其推入数组。
以下在两个查询中完成它:
UPDATE transactions
SET body = jsonb_set(body, '{refunds}', '[]'::jsonb, true)
WHERE transaction_id = 'abc'
UPDATE transactions
SET body = jsonb_insert(body, '{refunds,0}', '{"id":"any"}'::jsonb, true)
WHERE transaction_id = 'abc'
但如果数组不存在于单个事务/查询中,我似乎无法实例化该数组。当然也尝试了 postgres jsonb 文档。
提前致谢!
【问题讨论】:
标签: postgresql sql-update jsonb pg