我有一些json,如下所示
{"id":21,"name":"Ram","address":"mumbai","mobile":"1234567891"}
我在postgres中有一张桌子:tblstudents (id,name,address,mobile)
。
现在我想根据上面的json直接从输入参数更新此表中的记录:
update tblstudents
set name=[name value from json],
address=[address value from json]
where id=[id value from json]
实际上这是一个PUT请求,并且参数在postgres函数中从前端作为json发送。我想使用此json更新表格。 如何实现此功能,或者实现此功能的最佳方法是什么?
答案 0 :(得分:0)
您可以使用jsonb_populate_record函数创建适当的记录。 Postgres为您的表隐式创建一个类型,因此您可以使用以下类型:
UPDATE tblstudents
set name = json_record.name,
address = json_record.address
FROM jsonb_populate_record(null::tblstudents,
'{"id":21,"name":"Ram","address":"mumbai","mobile":"1234567891"}'::jsonb)
as json_record
WHERE json_record.id = tblstudents.id;