小编cze*_*rny的帖子

大型 VARCHAR 的唯一约束 - PostgreSQL

我有一个列定义如下:

data_url character varying(32768) NOT NULL
Run Code Online (Sandbox Code Playgroud)

和该列的 UNIQUE 约束:

CONSTRAINT unique_data_url UNIQUE (data_url)
Run Code Online (Sandbox Code Playgroud)

当一个大对象被插入到表中时,会出现以下错误信息:

ERROR:  index row requires 32584 bytes, maximum size is 8191
Run Code Online (Sandbox Code Playgroud)

如何设置 PostgreSQL 以便能够索引大于 8191 个字符的对象?空间和速度都不是问题。它是一个很少更改的表,最多有数百行。

环境:PostgreSQL 9.3.6,Fedora 20 x64

postgresql index varchar postgresql-9.3 unique-constraint

8
推荐指数
1
解决办法
4884
查看次数

JOINing 存储过程的返回类型 - PostgreSQL

是否可以使用连接表之一的表类型来表达返回连接表的存储过程的返回类型?

我的存储过程如下所示:

CREATE or REPLACE FUNCTION selectJoin()
RETURNS SETOF ???
AS $$
BEGIN
    RETURN QUERY SELECT t1.*, t2.name
                 FROM t1, t2
                 WHERE t1.t2_id = t2.id;
END; $$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

t1有很多(大约 70 个)列,所以我想以某种方式重用t1RETURNS 子句中的类型。类似(t1, varchar(30))或复合类型继承的东西。有可能吗?

PostgreSQL 9.3 版

postgresql composite-types postgresql-9.3

5
推荐指数
1
解决办法
3204
查看次数