我有一个现有列类型的表varchar
。我需要将此列类型转换为新类型jsonb
。问题是,如果列已经有数据'str1:str2'
,那么在将类型转换为jsonb
列之后,JSON 字符串无效'str1:str2'
。
我想像以前一样/在转换列类型时将现有字符串迁移'str1:str2'
到带有键的正确 JSON 字符串。是否可以使用子句或其他方式
来做到这一点。'{"key1":"str1","key2":"str2"}'
ALTER TABLE ALTER COLUMN....Using function()
与其组成任何键,不如将其转换为 json 数组?
那会
str1:str2
变成["str1", "str2"]
如果你真的需要编一些(编号的键),你将不得不编写一个辅助函数:
这可以在 USING 表达式中使用: