我正在尝试在我的 postgreSQL 数据库中添加 2 个新的 hstore 键/值对。是否可以在一份声明中做到这一点,还是我需要将其分解?这是我到目前为止所拥有的,但它不起作用。
with foo as (
select
id,
new_value_1,
new_value_2
from table 3
)
update public.table1
set hstore = hstore('new_key_1',foo.new_value_1),
hstore = hstore('new_key_2',foo.new_value_2)
where id = foo.id
我收到一个错误,我无法连续两次在更新中调用同一行。我如何将我在上面的 foo 语句中选择的两个不同的值插入到 hstore 中,作为具有新键的值到已经存在的列的 hstore 中。我只需要标记行,因此即使值更改原始值也会存储以供将来解决问题。
你可以连接它们:
或者使用接受两个数组的构造函数:
当您有更多的键而不是只有两个时,第二种解决方案将更容易扩展
如果您不想覆盖当前值,请将其附加到原始值:
或者