sql - 更新 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。
解决方案
我认为以下语法应该在准备好的语句中起作用
UPDATE users SET settings = jsonb_set(settings, '{country}', to_jsonb($1::text))
推荐阅读
- html - HTML中微调框的步长值增加最小值,而不是第一次增加步长
- node.js - 使用 nodejs 访问添加到 mongoDb 模型的动态属性
- ubuntu - 用户不允许,因为 shell ls 不存在
- arrays - C STM32中指向数据缓冲区的指针
- macos - 使用修改后的 macOS 生成文件时显示生成文件缺少分隔符
- c++ - 为什么〜n给出-(n + 1)?
- angularjs - 如何解决文本编辑器中的光标问题
- flutter - Flutter/Dart + gRPC 流错误:流被对等端终止(错误代码:2)
- asp.net-core - System.NullReferenceException ViewData .net 核心 5
- c - 头文件中结构的未知类型名称