我有一张带有主键的表,但我想让另外两列被限制,以确保它们的组合始终是唯一的。
(一个愚蠢的例子:在 BOOKS 表中,IBAN 列是主键,但标题和作者列的组合也应始终是唯一的。)
在 SQL Server Management Studio 中,可以创建一个新索引并将 IsUnique 设置为 Yes,也可以创建一个新的 Unique Key。
这两种方法之间有什么区别,哪个更适合哪些目的?
两种方法都可以用来确保列组合唯一性,但主要区别在于索引与约束之间的功能差异。
唯一约束(Unique Key)是一种规则或限制,可确保在一列或多列中没有重复值。如果尝试插入具有重复值的行,则会发生错误。因此,适用于需要强制执行唯一性约束的情况。
索引则可以加快根据特定列或列组合的值进行数据查询的速度,并且可以选择将其设置为唯一索引。但是,它并不会强制执行唯一性。因此,适用于需要快速查询数据的情况。
在这种情况下,由于您需要确保两列的组合始终是唯一的,因此使用 Unique Key 约束更加合适。