You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PostgreSQL中string类型列转为jsonb类型(值转数组)

解决方案(PostgreSQL)

直接修改列类型(推荐,一步到位)

执行以下SQL即可完成转换,USING子句会自动将原字符串值转为包含该字符串的jsonb数组:

ALTER TABLE table_a
ALTER COLUMN type TYPE jsonb
USING to_jsonb(array[type]);

安全验证步骤(可选,避免误操作)

如果担心直接修改出错,可先验证转换结果再执行修改:

  1. 查看转换后的数据是否符合预期:
SELECT id, to_jsonb(array[type]) AS converted_type FROM table_a;
  1. 确认无误后,再执行上面的ALTER TABLE语句。

备选分步操作(适合需保留原数据的场景)

如果需要先保留原数据再替换列:

  1. 添加临时列存储转换后的jsonb数据:
ALTER TABLE table_a ADD COLUMN type_jsonb jsonb;
UPDATE table_a SET type_jsonb = to_jsonb(array[type]);
  1. 验证临时列数据正确后,删除原列并重命名临时列:
ALTER TABLE table_a DROP COLUMN type;
ALTER TABLE table_a RENAME COLUMN type_jsonb TO type;

注意:操作前请务必备份数据,避免意外数据丢失;该方案仅适用于PostgreSQL数据库(jsonb为PostgreSQL专有类型)。

内容的提问来源于stack exchange,提问作者Renato Souza de Oliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:35:30