gpt4 book ai didi

postgresql - 如何将新项目附加到 PostgreSQL 中的数组类型列中

转载 作者:IT王子 更新时间:2023-10-28 23:45:46 25 4
gpt4 key购买 nike

我在我的应用程序中使用 PostgreSQL,

任务会是这样的

有些用户在使用我的应用,我需要根据他们的事件为每个用户维护通知,以便为每个用户收到大量通知。

所以一般来说,我们只是将所有通知放在一个单独的表中,并使用用户 ID 进行映射,所以我们可以获取它们,但现在我想使用 json/array 数据类型,所以我可以把整个通知设置为 array/json 到每个用户行的单元格中。

哪个更好,存储json还是数组?(我在服务器端使用PHP)

如果我们选择两者中的任何一个,假设我们有大约 10 个通知,而我得到了第 11 个,我们如何在单次执行中将新项目附加到数组/json 对象中(可能是 UPDATE 语句) ?我不想以基本的方式选择行,获取现有的数组/json,最后添加新项目(使用 PHP 处理)并更新它 - 这里需要两次执行,可能会发生另一个变化,这会带来数据丢失

那么有没有一种方法来执行 UPDATE 查询,只添加一个新元素或更改 PostgreSQL 中 array/json 对象类型中的现有元素/节点?

最佳答案

要将项目附加到 PostgreSQL 中的数组,您可以使用 || 运算符或 array_append 函数。

与||运算符(operator)

UPDATE table SET array_field = array_field || '{"new item"}' WHERE ...

带有array_append函数

UPDATE table SET array_field = array_append(array_field,'new item') WHERE ...

此外,您可以访问此页面以获取数组,http://www.postgresql.org/docs/current/interactive/functions-array.html

我不知道如何使用 JSON 数据类型。

关于postgresql - 如何将新项目附加到 PostgreSQL 中的数组类型列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29319801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com