将值从 jsonb 列复制到另一个嵌套的 jsonb 列

问题描述 投票:0回答:2

我有一个实体,其中有两个 jsonb 列:“选项”和“功能”。我想将数据从选项列内的字段复制到功能内的两级深字段。 我尝试过的:

UPDATE entity 
SET features = jsonb_set(  features
                         , '{informations}'
                         , "features"->'informations' 
                         ||'{"test": "options"->'test'}'
                         , true);

但是我在尝试运行迁移时遇到此错误:

QueryFailedError: syntax error at or near "test"

我认为 {} 和 test 周围的简单引号会产生错误。

我该怎么做?

仅供参考:反向迁移与 :

完美配合
UPDATE entity 
SET options = jsonb_set(  options
                        , '{test}'
                        , features->'informations'->'test'
                        , true);

因为这里没有嵌套简单引号。

sql postgresql migration
2个回答
1
投票

您只需要其中的一些引言:

UPDATE entity 
SET features = jsonb_set(  features
                         , '{informations}'
                         , features->'informations' 
                         ||options ->'test'
                         , true);

0
投票

解决方案是:

UPDATE domain
SET features = jsonb_set(features, '{informations,test}', "options"->'test', true)
© www.soinside.com 2019 - 2024. All rights reserved.