UNIQUE - 在表中拥有唯一行的方法?

时间:2010-01-28 03:50:20

标签: sql sql-server sql-server-2008 constraints

我对db表中的唯一行有问题,现在可以这样做了:

id  | Name  | LastName  | City
-------------------------------------
1   | John  | Moore     | London
2   | John  | Moore     | London

当我在所有列中使用UNIQUE属性时,我插入第二个Moore时出错,即使它是不同的名称:/

如何使用UNIQUE(或者可能是INDEX?)在db中的表中执行类似的操作:

id  | Name  | LastName  | City
-------------------------------------
1   | John  | Moore     | London
2   | Jake  | Moore     | London
3   | John  | Keen      | London
4   | John  | Moore     | London //but good error when inserting the same row

很抱歉,如果问题很简单,但我是sql的初学者,并且在找到一些使用UNIQUE之类的好例子时遇到问题:/ 或者我必须在插入新行之前从db中选择一个表并检查它是否存在?

1 个答案:

答案 0 :(得分:10)

删除单个列上的唯一索引,并将它们放在两个列上,如下所示:

CREATE UNIQUE INDEX ixFullName ON yourTable (LastName, Name);