将varchar列迁移到jsonb数组

时间:2020-01-27 23:38:02

标签: postgresql

我有一个varchar字段,其中包含简单的字符串,例如applebanana。我只是试图将列更改为JSONB[]列,并将值更改为["apple"]["banana"]

1 个答案:

答案 0 :(得分:1)

jsonb[]几乎没有任何意义,如果有的话,请使用jsonb。如果您确实使用了jsonb[],则您的值将类似于{"[\"banana\"]"},而不是["banana"]

要将单个varchar值转换为一个JSONB值,该值是一个数组(不是 JSONB值的数组),您可以使用:

to_jsonb(array[the_column])

这可以用作ALTER TABLE语句的一部分:

alter table the_table
  alter column the_column 
  type jsonb using to_jsonb(array[the_column]);

Online example