用于限制每日任务的SQL约束

时间:2012-05-03 09:50:30

标签: sql date constraints

我正在教自己SQL,我被困住了。我有一个Car-garage数据库,里面有一个名为Tasks的表。表Tasks有3列:Tasknumber(PK),NumberPlate和DaySchedule。在DDL中,我想使用一个约束来检查印版的数量,并且每天只允许一个任务。

以下是我的尝试。但是,它限制每个记录而不是每个板数。

CREATE TABLE Tasks (
   Tasknumber    NUMERIC(5)   not null,
   NumberPlate   VARCHAR(8)   not null,
   DaySchedule   DATE         not null,
   Description   VARCHAR(255) null,
   CONSTRAINT PK_Tasknumber PRIMARY KEY  (Tasknumber),
     D AS DAY(DaySchedule) PERSISTED,
     M AS MONTH(DaySchedule) PERSISTED,
     Y AS YEAR(DaySchedule) PERSISTED,
  CONSTRAINT UQ_DATA_DMY UNIQUE(D,M,Y)
)

我该怎么做才能纠正这个问题?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您只需要UNIQUE (NumberPlate, DaySchedule)约束。然后,对于每个NumberPlate,每天最多只能有一个任务。