这是为什么
CREATE TABLE ORDERS
(
OrderID INT IDENTITY(1, 1) UNIQUE,
BuyerID INT,
PRIMARY KEY(OrderID, BuyerID)
);
即使在SQL Server中也允许?
我的意思是,为什么允许IDENTITY(1, 1) UNIQUE
?
IDENTITY
是否已经意味着这些值将是唯一的?
这就像C#中的静态const-const已经是静态的(C#中不允许使用静态const)
答案 0 :(得分:3)
否,IDENTITY
并不意味着这些值将是唯一的。您可以重置标识列的种子,这将为您提供重复项。或者,您可以启用IDENTITY_INSERT
,这将允许您输入自己的值。
IDENTITY
是指如何生成值,而UNIQUE
是添加约束。 2个不同的概念。