问题描述
我试图用另一个表中的数据更新一个表中的JSONB字段。例如,
update ms
set data = data || '{"COMMERCIAL": 3.4,"PCT" : medi_percent}'
from mix
where mix.id = mss.data_id
and data_id = 6000
and set_id = 20
这给我以下错误-
Invalid input Syntax for type json
DETAIL: Token "medi_percent" is invalid.
将medi_percent
更改为数字时,不会出现此错误。
解决方法
{"COMMERCIAL": 3.4,"PCT" : medi_percent}
不是有效的JSON文本。请注意,这里没有发生字符串内插。您可能正在寻找
json_build_object('COMMERCIAL',3.4,'PCT',medi_percent)
现在medi_percent
现在是表达式(大概会引用您的mix
列)。