PostgreSQL基于范围数字字段的唯一索引

时间:2011-03-11 03:18:35

标签: postgresql indexing

我有一个scheduleitem表,其中包含roomdayofweekstarttimeendtime的列。我希望能够在roomdayofweek上创建唯一索引,其中谓词(以某种方式)阻止表包含重叠时间,即防止重叠在潜在的新行{{ 1}}和任何给定的现有行r2满足

r1

到目前为止,我无法将子查询添加到部分索引谓词中,并且我在唯一列列表中引用的任何存储过程都必须是不可变的(不能运行任何查询),所以我很难过。

2 个答案:

答案 0 :(得分:5)

您正在寻找功能排除约束 - 请参阅http://www.postgresql.org/docs/9.0/static/sql-createtable.html并查看有关EXCLUDE的部分。

答案 1 :(得分:1)

为什么不使用触发器?您可以阅读here