让人纠结的PG字段json类型
PostgreSQL确实牛逼得很。
PostgreSQL有个json数据类型。当你用json类型设定表的字段时,你用select语句相当爽。问题是当你使用中间件时如FireDAC等,进行数据保存时,就会出现啥啥错误operator does not exist: json=json。数据保存不了,保存数据失败。其实就是在update数据时,类型转换的问题。
这就头大了。如果你有好方法,请告诉我。反正我是头大了。
其实在PostgreSQL中,select 对json的操作非常爽。同时有一个数据类型转换的操作。
SELECT ( '[ { "age": "10", "name": "jack" }, { "age": "20", "name": "lucy" } ]'::json)->0->'name' "Name"
其结果:
Name
"jack"
咱们换个思路:
把表字段设成text类型,存储json字符串如何?在保存之前要做检查,(如果是json类型,系统会自动检查)如此,如何?
那就这样吧,让我们走吧!