PostgreSQL脚本中向jsonb字段插入UUID的正确格式是什么?
正确的UUID数组插入jsonb字段的PostgreSQL脚本
错误原因
- 单个UUID变量无法直接通过
::uuid[]转为UUID数组,需用ARRAY[]语法构造数组 array_to_json仅接受一个数组参数,第二个INSERT语句传递两个参数属于语法错误- 需确保最终生成的是jsonb类型(可直接用
to_jsonb函数一步完成转换)
修正后的脚本
DO $$ DECLARE tagid1 UUID := '77170ed4-4d39-4799-ad22-750e57a11833'; tagid2 UUID := '890b96ad-c595-4b6e-9e49-cad234190fda'; BEGIN -- 插入单个UUID组成的jsonb数组 INSERT INTO entity(id, tags) VALUES (1, to_jsonb(ARRAY[tagid1])); -- 插入多个UUID组成的jsonb数组 INSERT INTO entity(id, tags) VALUES (2, to_jsonb(ARRAY[tagid1, tagid2])); END $$;
补充说明
to_jsonb可直接将UUID数组转换为jsonb类型,无需先转json再转jsonb- 若偏好使用
array_to_json,可写成array_to_json(ARRAY[tagid1])::jsonb,效果与to_jsonb一致
内容的提问来源于stack exchange,提问作者Jemolah
相关产品推荐
相关产品推荐

