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

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

最佳答案

你的意思是这样的:

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

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

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

相关文章:

php - 价格数据的数据库设计

android - DBFlow 一对多示例

mysql - 具有 3000 万条目的表速度很慢。优化MySQL还是改用mongodb?

python - Flask 应用程序从 mysql 连接拒绝访问

sql - 在不同的表上插入/更新条件

database-design - 为 SO 类型的站点创建 "categories"是否值得,或者标签是否可以替代?

java - 如何以编程方式在 Java 中使用渗透导入 OSM 数据?

postgresql - 如何在用户浏览器上实现node-postgres?

java - 记录小于批量大小时的数据库批处理模式

java.jdbc clojure 执行!插入数