postgresql - 直接从 json 更新表
问题描述
我有一些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 更新表。如何实现此功能或实现此功能的最佳方法是什么?
解决方案
您可以使用 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;
推荐阅读
- c++ - QEvent:: MouseButtonPress 和 QEvent:: MouseMove 以一种奇怪的方式影响 QGraphicsScene
- linux - 只读文件系统 - LXC
- apache-kafka - Kafka分区器问题,两个主题相同的分区键
- sql - 如何在 SQL 中使用连接创建表变量
- spring-cloud - PCF p-config-server /decrypt api 返回 403 禁止错误
- javascript - 由于 number 是原始类型,为什么在重新分配给另一个变量时会更改其值?
- momentjs - 将 Unix 时间戳从时刻转换为正常日期的问题
- android - 未解决的参考:HiltAndroidTest?
- java - 如何正确处理 catch 块内的嵌套异常
- java - 发送带有css、js和图像的html电子邮件spring boot