2010-01-28 4 views
2

У меня проблема с уникальными строк в таблице БД, теперь это Возможное сделать:
UNIQUE - способ иметь уникальные строки в таблице?

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

, когда я использовать UNIQUE атрибут во всех колонках я есть ошибки вставки второй Мур даже отличается Имя:/

как использовать UNIQUE (или, может быть INDEX?), чтобы сделать что-то подобное в моей таблице в БД:

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, и есть проблемы с найти некоторые хорошие пример остроумия h используя UNIQUE как хотите:/ или, может быть, я должен перед вставкой новой строки выбрать таблицу из db и проверить, существует ли она?

ответ

10

Удалить уникальный индекс на отдельной колонке, и сделать это на обеих колонках вместе, как это:

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

Я собирался предложить уникальное ограничение - после просмотра вашего ответа я сделал некоторое рытье и нашел, что это интересно статья о различии между уникальным индексом и уникальным ограничением http://msdn.microsoft.com/en-us/library/aa224827(SQL.80).aspx –

+0

Спасибо Дэвиду. Я определенно считаю их идентичными и предпочитаю думать о них как о индексах из-за того, что их можно использовать в операторе поиска/сканирования индекса. –

+1

Уникальный индекс также может содержать столбцы INCLUDE. Ограничение не может. – gbn

Смежные вопросы