我对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中选择一个表并检查它是否存在?
答案 0 :(得分:10)
删除单个列上的唯一索引,并将它们放在两个列上,如下所示:
CREATE UNIQUE INDEX ixFullName ON yourTable (LastName, Name);