在 alter table 中将 json 转换为文本 []

Convert json to text[] in alter table

ALTER TABLE students
ALTER COLUMN hobbies type text[] using hobbies::text[];

显示 json 无法转换为 text[] 的错误。

你需要一个辅助函数来做到这一点。

create function json_to_array(json) returns text[] language sql as $$ 
    select array_agg(x) from json_array_elements_text() f(x) 
$$;

ALTER TABLE students
ALTER COLUMN hobbies type text[] using json_to_array(hobbies);