sql - 如何使用 NULL 值更新 JSON 列?

标签 sql json postgresql

您好,我正在尝试在我的 json 列中添加/更新数据 - 其中的值为 NULL 运气不好 - 这是我的错误查询

update departments 
set (data->>'formal_name') = departments.name 
where (data->>'formal_name') is null

谢谢你的建议

最佳答案

除非您使用的是 PostgreSQL 9.5 的某些 Alpha 版本,否则您无法更新 JSON 列中的数据:

https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.5#JSONB-modifying_operators_and_functions

此外,请考虑此答案中给出的建议:

How to perform update operations on columns of type JSONB in Postgres 9.4

如果您确实需要修改 JSON 字段中的数据,您可能必须使用 json_array_elements() 分解 JSON,然后作为一个整体重新构建它,如下所述:

https://dba.stackexchange.com/questions/54283/how-to-turn-json-array-into-postgres-array

关于sql - 如何使用 NULL 值更新 JSON 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32763172/

相关文章:

mysql - 内部连接不正确的总和()

mysql - 使用 PHPMYADMIN 更新

mysql - 无法对所选数据进行分组

python - SQLALCHEMY:没有唯一约束与引用表的给定键匹配

postgresql - PostgreSQL从声明的表中插入(存储过程或函数)

c++ - 有人对 FastDB(C++ 内存数据库)有任何经验吗?

javascript - 使用 JavaScript 从 JSON 值加载 HTML 表

ios - Restkit 将响应映射到父实体 - 当响应没有父实体值时

c# - 货币作为字符串还是货币作为数字?

node.js - 如何获取nodejs回调结果