SQL中的唯一列可以是auto_increment

时间:2017-05-05 09:11:34

标签: sql sql-server unique auto-increment identity

SQL中的唯一列可以是auto_increment,... 即如果我们有一个数据库表,它有一个带有标识(1,1)的主键列“id”。然后,我们可以使用UNIQUE约束和IDENTITY(1,1)的任何其他列。?

2 个答案:

答案 0 :(得分:1)

每个表只能有一个标识列,但您可以拥有任意数量的唯一约束(或索引)。
实际上,如果您使用int标识列作为主键,强烈建议您在表上至少再添加一个唯一索引。
这样做的原因是使用代理主键而不强制自然键的唯一性意味着您的数据库无法正确实施数据完整性。 (奖金阅读 - Natural vs. Surrogate Keys in SQL Server : Getting the Proper Perspective

BTW,列是标识列的事实并不意味着它是唯一的。只要没有人弄乱它,它就是唯一的 - 可以使用set identity_insert on插入标识列显式值,并且可以使用DBCC CHECKIDENT sql命令重新播种。

答案 1 :(得分:0)

答案是否定的。

  

每个表只能创建一个标识列。

请在此处阅读参考资料:https://docs.microsoft.com/