您可以指定多於一列UNIQUE
:
CREATE TABLE tab(ID INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(100), age INT
,UNIQUE(name, age));
INSERT INTO tab(name, age) VALUES ('John', 25);
INSERT INTO tab(name, age) VALUES ('John', 26);
-- INSERT INTO tab(name,age) VALUES ('John', 25);
-- Violation of UNIQUE KEY constraint 'UQ__tab__CF0426FD76D3370A'.
-- Cannot insert duplicate key in object 'dbo.tab'.
-- The duplicate key value is (John, 25).
-- The statement has been terminated.
SELECT * FROM tab;
LiveDemo
注:
,可以儲存date of birth
,而不是年齡本身(或作age
計算列,並設置UNIQUE(name, dob)
)。
這就是我不明白)數據庫將如何知道它應該是兩列獨特的,不是每一列是唯一
這些都是不同的概念。 DB從UNIQUE
約束定義中「知道」它:
UNIQUE(userIdG,doWithCar) -- pair of column is unique
!=
UNIQUE(userIdG),UNIQUE(doWithCar) -- each column is unique
首先,不要因爲您使現有答案無效而以這種方式編輯。其次它看起來像'PhpMyAdmin',所以它是** **而不是**'Microsoft SQL Server ** **第三:這是一個典型的chamelon問題。總結一下添加'UNIQUE(userIdG,doWithCar)'。 – lad2025
@ lad2025對不起,如果它看起來像變色龍的問題。我只是試圖理解這個概念,但不幸的是我沒有得到它,這就是爲什麼問現有問題 –