我在设计我的模式时犯了一个错误。我在应该是jsonb[]的时候创建了一个专栏jsonb。有没有一种方法可以将数据转换为jsonb[]
列中的数据是一个由文本元素组成的jsonb数组,只是它恰好被转换为jsonb而不是jsonb[]。
类似于:
select
jsonb_to_jsonb_array(jsonb_col)
from
mytable更大的目标是将列放入一个纯pg文本数组text[]中,这样它就可以被unnested了。我知道如何使用jsonb[]来做到这一点,但在使用jsonb时遇到了问题。
发布于 2018-07-25 01:43:10
此语法适用于我
ALTER TABLE mytable
ALTER COLUMN jsonb_col TYPE JSONB[] USING ARRAY[jsonb_col]::jsonb[];发布于 2018-07-26 05:08:18
使用函数:
create or replace function jsonb_text_array(jsonb)
returns text[] language sql immutable as $$
select array(select jsonb_array_elements_text($1))
$$;
alter table my_table alter jsonb_col type text[] using jsonb_text_array(jsonb_col)https://stackoverflow.com/questions/51503972
复制相似问题