我想定义一个Postgres域,该域具有基于自定义复合类型的判断约束.

天真方法的一个例子是:

CREATE TYPE raw_comp_foo AS (
    min_value    integer,
    max_value    integer
);
CREATE DOMAIN comp_foo AS raw_comp_foo
CHECK (VALUE.min_value < VALUE.max_value);

但是,我得到了错误消息missing FROM-clause entry for table "value".

推荐答案

将复合类型值放在括号中:

CREATE DOMAIN comp_foo AS raw_comp_foo
CHECK ((VALUE).min_value < (VALUE).max_value);

Postgresql相关问答推荐

即使不对订阅服务器进行任何修改,Postgres逻辑复制也可能发生冲突吗?

使用jOOQ在postgres上取消嵌套enum_range

我应该如何更新热门表?

在 Windows 上使用 rsync 进行 Postgresql 副本升级

具有有限字母表的自定义字符串类型

是否可以调整 PostgreSQL 中的数组以适应 IN 运算符?

Postgres 转储按顺序插入

如何为基于复合类型的 Postgres DOMAIN 定义 CHECK 约束

将数组插入 Postgresql 数据库

如何将 postgres 数据库转换为 sqlite

brew 程序更新恼人的错误信息

遇到序列化失败的条件是什么?

如何在可选参数上查询 postgres?

Postgres 中的相似函数与 pg_trgm

如何在 PostgreSQL 中创建 guid

Postgres 默认按 id 排序 - worldship

Postgresql 中的 NOT EXISTS 子句

每个数据库提供程序类型允许的最大参数数是多少?

如何减少存储(缩减)我的 RDS 实例?

在布尔字段上添加索引