#postgresql #jsonb
#postgresql #jsonb
Вопрос:
Я пытаюсь обновить поле 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
значение на число, я не получаю эту ошибку.
Ответ №1:
{"COMMERCIAL": 3.4, "PCT" : medi_percent}
недопустимый текст в формате JSON. Обратите внимание, что здесь не происходит интерполяции строк. Возможно, вы ищете
json_build_object('COMMERCIAL', 3.4, 'PCT', medi_percent)
вместо where medi_percent
теперь является выражением (которое, предположительно, будет ссылаться на ваш mix
столбец).