用部分索引排除约束-Postgresql

时间:2019-06-26 05:37:23

标签: sql django postgresql

我有下表:

class Slot(models.Model):
    time_range = models.DateTimeRangeField()
    calendar = models.ForeignKey('Calendar')
    campaign = models.ForeignKey('Campaign', null=True)

class Appointment(models.Model):
    calendar = models.ForeignKey('Calendar')
    campaign = models.ForeignKey('Campaign', null=True)
    slot = models.ForeignKey('Slot', models.DO_NOTHING, unique=True, null=True)
    timezone = models.CharField(max_length=120)

我想使Slot.time_range唯一,以便其他插槽不会与之重叠,而只是该插槽有约会。

到目前为止,我有以下SQL

 ALTER TABLE appointments_slot
   ADD CONSTRAINT time_range_unique
   EXCLUDE USING gist (time_range WITH &&)
   WHERE (MISSING PART);

这里有没有加入的任何方式,或者我尝试了许多没有成功的方式。也许我将完成向appointment_id表中添加Slot列。

0 个答案:

没有答案