将 json 对象附加到 json 数组

Append a json object to a json array

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

我正在尝试向其附加一个 json 对象,每次更新时都会附加另一个 json 对象。

数据进来

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

数据库中的新值应该是:

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

行的另一个更新:

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

行中的更新值现在应为:

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

我试过了:

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

|| 运算符需要右边的数组,如果 左边也是一个数组

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

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