我有兩列如下表:如何執行排除約束?
A - int (null)
B - int (null)
應該有A或B值,但不能同時使用。我如何創建這個約束?
沒有額外的IDENTITY列,有沒有一種方法來強制在這個表上的複合主鍵由於兩個空列被允許?
我有兩列如下表:如何執行排除約束?
A - int (null)
B - int (null)
應該有A或B值,但不能同時使用。我如何創建這個約束?
沒有額外的IDENTITY列,有沒有一種方法來強制在這個表上的複合主鍵由於兩個空列被允許?
create table t
(
a int,
b int,
CONSTRAINT null_const CHECK ((a is not null and b is null) or
(b is not null and a is null))
);
你所說的「複合主鍵」是什麼意思?是否需要唯一性? – 2014-12-03 17:14:31
這是一個複合主鍵。所以是的 - 它應該是獨一無二的。 – 4thSpace 2014-12-03 17:23:42
什麼應該是唯一的? '(A,B)'或'A UNION ALL B'的組合? – 2014-12-03 18:10:06