将项目添加到数组时无法使用另一个节点的值

问题描述

列数据的类型为 jsonb

示例:

 "availability": [
        {
            "qty": 90,"price": 42599,"store": {
                "name": "test","hours": null,

此处查询将项目添加到数组可用性。我需要 is_available 具有与 qty 相同的值。节点数量生成随机数。

我尝试

UPDATE copy_product 
SET data = jsonb_set
(
data,'{availability}',data -> 'availability' || 
    jsonb_build_object(
        'qty',(random()*((data #>>'{availability,qty}')::integer -1))::numeric::integer,'is_available',qty,'price',data #>>'{availability,price}','store',to_jsonb('{
            "address": null,}'::json
         ))
) where id = 4

但我收到错误消息:

ERROR:  column "qty" does not exist
LINE 7:         'is_available',^
sql state: 42703
Character: 229

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)