在postgresql-9.4中将自定义类型数组插入表列?

时间:2015-11-07 08:19:38

标签: database postgresql

我有一个自定义类型“nameage”和一个表“namesages”。

CREATE TYPE nameage AS(
name_ varchar(50),
age smallint 
);
CREATE TABLE namesages(
id serial,
namesandages nameage[]
);

INSERT INTO namesages(namesandages) VALUES(ARRAY[['john', 24],['david', 38]]::nameage[]);

为什么此查询会出错?;

ERROR:  malformed record literal: "john"
LINE 1: insert into namesages(namesandages) values(ARRAY[['john', 24...
                                                          ^
DETAIL:  Missing left parenthesis.
********** Error **********

1 个答案:

答案 0 :(得分:5)

你打算这样做:

INSERT INTO namesages(namesandages) 
VALUES(ARRAY[ROW('john', 24),ROW('david', 38)]::nameage[]);

这将创建一个用户定义的复合类型的一维数组。当你定义一个二维数组时,我不确定你打算做什么...