PostgreSQL使用另一列的值更新JSONB列
发布时间:2020-12-13 15:53:04 所属栏目:百科 来源:网络整理
导读:我想将数据从一列(varchar)迁移到另一列(jsonb) Column | Type | Modifiers ------------+-----------------------------+-------------------------------------------------------- id | integer | not null default nextval('merchants_id_seq'::regclass
我想将数据从一列(varchar)迁移到另一列(jsonb)
Column | Type | Modifiers ------------+-----------------------------+-------------------------------------------------------- id | integer | not null default nextval('merchants_id_seq'::regclass) name | character varying | not null nameb | jsonb | not null default '{}'::jsonb 因此nameb将成为{“en”:“$name”},其中$name是name字段中的值. 例如: SELECT name,nameb 之前: name | nameb --------------------------------------+------------ hello | {} world | {} 后: name | nameb --------------------------------------+------------ hello | {"en": "hello"} world | {"en": "world"} 使用regualar类型我可以做UPDATE SET whatever =(SELECT …),但如何用jsonb做到这一点? UPDATE商家SET nameb =(SELECT'{“en”:“fillme!”}’:: jsonb);有效,但如何设置“fillme!”另一个领域的价值? 解决方法
我找到了解决方案
UPDATE merchants AS m1 SET nameb = ( SELECT row_to_json(t) FROM ( SELECT name as en FROM merchants AS m2 WHERE m1.id = m2.id ) t )::jsonb; 不确定它是否正确,但它确实有效 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- c# – 将空字段转换为零,然后转换为int?
- 升级到Xcode 8后,iPhone 4和iPhone 4s的模拟器消
- org.xml.sax.SAXParseException: cvc-elt.1: Can
- 你能推荐一个格式化C#代码的CSS样式表吗?
- No grammar constraints (DTD or XML Schema) re
- 源码安装postgresql9.5.1
- Cocos2dx-lua中使用LuaSocket
- 简单了解一下oracle中的显示游标和存储过程
- vb.net – ListView – ItemCheck事件的旧检查状
- postgresql 查看数据库,表,索引,表空间以及大小
热点阅读