首页 > 解决方案 > 更新 postgresql 中的 jsonb 字段

问题描述

我正在尝试更新 postgresql 中 jsonb 列中的值。

// column 'settings'
{
  "country": "us",
  "language": "en"
}

我想使用准备好的语句,我想更新一个特定的值,而不是整个 jsonb 对象。

这不起作用:

UPDATE users SET settings = jsonb_set(settings, '{country}', '$1'::jsonb)

我正在尝试将准备好的语句的值转换为 jsonb,它不起作用。错误是invalid input syntax for type json

更新 jsonb 字段中特定值的正确方法是什么。

我正在使用nodejs pg。

标签: sqlnode.jsjsonpostgresqlsql-update

解决方案


我认为以下语法应该在准备好的语句中起作用

UPDATE users SET settings = jsonb_set(settings, '{country}', to_jsonb($1::text))

推荐阅读