提问人:MarcoPSM 提问时间:2/26/2021 更新时间:2/26/2021 访问量:1020
Postgres 插入一个用户定义类型的数组,其中包含一个数组
Postgres insert an array of an user-defined type with an array inside
问:
我为长度创建了这个类型:
CREATE TYPE length AS (value numeric, uom text );
然后我创建了一个长度为
CREATE TYPE test_type AS (comp_height length[]);
在此之后,我创建了一个表,其列类型为 test_type array
CREATE TABLE test_table (test_column test_type[]);
现在我无法插入此表。我试过这种方式
insert into test_table (test_column)
values (
ARRAY[
ARRAY[(1,'m')::length,
(20,'m')::length],
ARRAY[(3,'m')::length,
(40,'m')::length]
]::test_type
);
但我收到一个投射错误:(
ERROR: cannot cast type length[] to test_type
我感谢任何帮助,谢谢
答:
1赞
S-Man
2/26/2021
#1
您必须使用 转换为记录,该记录可以转换为您的新记录length[]
ROW()
test_type
insert into test_table (test_column)
values (
ARRAY[
ROW(ARRAY[(1,'m')::length, (20,'m')::length])::test_type,
ROW(ARRAY[(3,'m')::length, (40,'m')::length])::test_type
]
);
评论