在 PostgreSQL 的对象数组中添加更多数据

Posted

技术标签:

【中文标题】在 PostgreSQL 的对象数组中添加更多数据【英文标题】:Adding more data in array of object in PostgreSQL 【发布时间】:2022-01-18 08:52:15 【问题描述】:

我有一个包含 2 列 (user_num, data) 的购物车表。

user_num 将有用户的电话号码和 data 将有一个对象数组,如[ "id": 1, "quantity": 1 , "id": 2, "quantity": 2 , "id": 3, "quantity": 3 ] 这里id 是产品ID。

 user_num |                                         data
----------+--------------------------------------------------------------------------------------
        1 | [ "id": 1, "quantity": 1 ,  "id": 2, "quantity": 2 ,  "id": 3, "quantity": 3 ]

我想在 PostgreSQL 的上述对象数组中添加更多产品数据。

谢谢!

【问题讨论】:

哪种类型的列数据?是JSON 还是JSONB @Pooya 这是 JSON 【参考方案1】:

要添加值,请使用 JSONB 数组追加运算符 ||

Demo

update
  test
set
  data = data || '["id": 4, "quantity": 4, "id": 5, "quantity": 5]'
where
  user_num = 1;

【讨论】:

还有两个问题,如何删除id为4的对象以及如何编辑数量? 我希望这个示例对您有所帮助。我附加了一个用于更新和删除数组中的属性的示例。 dbfiddle.uk/…

以上是关于在 PostgreSQL 的对象数组中添加更多数据的主要内容,如果未能解决你的问题,请参考以下文章