防止日期重叠postgresql

Tru*_*ran 3 postgresql date overlap

有没有办法在postgresql表中添加约束以防止日期重叠?例如,我有一个名为表workouts有日期列week_start,week_end.我想确保week_start - week_end范围都不与任何现有范围重叠.但是,结束日期week_start可以与开始日期重叠week_end.

有人可以帮忙吗?

提前致谢!

Nic*_*nes 6

您可以使用排除约束来执行此操作&&,对daterange类型使用重叠运算符():

CREATE TABLE workouts (
  week_start DATE,
  week_end DATE,
  EXCLUDE USING gist (daterange(week_start, week_end) WITH &&)
)
Run Code Online (Sandbox Code Playgroud)