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

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 **********

最佳答案

你的意思是:

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

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

关于database - 将自定义类型数组插入postgresql-9.4中的表列中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33580705/

10-10 08:36