我有一个包含整数数组的JSON列。我试图将其转换为INTEGER[]列,但是遇到了类型转换错误。
这是我的最终修改版本:
ALTER TABLE namespace_list ALTER COLUMN namespace_ids TYPE INTEGER[] USING string_to_array(namespace_ids::text, ',');
然而,这会抛出以下错误: ERROR: cannot cast type json to integer[]
你有什么想法可以解决这个问题吗?我尝试了几种方法,但最终都遇到了相同的错误。似乎json -> string -> array的方式行不通。我的选择有哪些?
编辑: 表定义:
这是我的最终修改版本:
ALTER TABLE namespace_list ALTER COLUMN namespace_ids TYPE INTEGER[] USING string_to_array(namespace_ids::text, ',');
然而,这会抛出以下错误: ERROR: cannot cast type json to integer[]
你有什么想法可以解决这个问题吗?我尝试了几种方法,但最终都遇到了相同的错误。似乎json -> string -> array的方式行不通。我的选择有哪些?
编辑: 表定义:
db => \d+ namespace_list;
Column | Type | Table "kiwi.namespace_list" Modifiers|
---------------+----------+--------------------------------------+
id | integer | not null default nextval('namespace_list_id_seq'::regclass)
namespace_ids | json | not null default '[]'::json
示例数据:
id | namespace_ids |
-------------------+
1 | [1,2,3] |