0

我在数据库中有一个json类型的列。它的默认值为 []。

我试图向它附加一个 json 对象,并且每次更新它都会附加另一个 json 对象。

进来的数据

{"name":"foo", "timestamp": 123}

DB 中的新值应为:

[{"name":"foo", "timestamp": 123}]

对行的另一个更新:

{"name":"john", "timestamp": 234}

行中的更新值现在应该是:

[{"name":"foo", "timestamp": 123},{"name":"john", "timestamp": 234}]

我试过了:

NEW."dryWeight" = OLD."dryWeight" || NEW."dryWeight";
4

1 回答 1

1

如果左侧的||值也是数组,则运算符需要右侧的数组

update the_table
   set the_column = the_column || '[{"name":"bar", "timestamp": 234}]'
where ...;

||仅适用于jsonb,不适用于“普通”json

于 2020-06-27T08:14:16.503 回答