SQL添加唯一的3列,其中4为NULL

时间:2018-09-11 08:12:31

标签: sql unique

我有3列:NumberStepNumberLineId

我想使它们唯一,但仅在第四列FinishTimeNULL的地方。

如果FinishTime不是NULL,则这三列不能唯一。

我尝试过:

ALTER TABLE myTable ADD CONSTRAINT checkUnique UNIQUE (Number, StepNumber, LineId)

但禁止添加WHERE FinishTime IS NULL

Example

2 个答案:

答案 0 :(得分:0)

在约束定义中也包括FinishTime列。

ALTER TABLE myTable ADD CONSTRAINT checkUnique UNIQUE (Number, StepNumber, LineId, FinishTime)

答案 1 :(得分:0)

创建唯一的非聚集索引

Create unique nonclustered index [my_index]
on [mytable]([FinishTime])
where [FinishTime] is not null