2016-04-07 4 views
-2

Где бы я ни искал, я никогда не слышал, чтобы в каких-либо реализациях SQL была бы «команда» IS UNIQUE. Я что-то пропустил? Если я прав, в чем причина?Имеет ли SQL условие, подобное «IS UNIQUE»?

Другими словами, почему я не могу указать в SQL, что определенная команда, например, INSERT INTO (особенно что) может быть сделано только, если значение или не считается UNIQUE?

+6

Вы делаете это с ограничениями столбцов в самой таблице, а не в SQL INSERT. Проверьте документацию для конкретной СУБД, которую вы используете, для правильного синтаксиса для использования с определением столбца в CREATE TABLE. –

ответ

1

Выбрать запросы могут использовать ключевое слово «различный» для выбора уникальных элементов из таблицы

SELECT DISTINCT person_name FROM people WHERE age = 4;

Для вставки можно также рассмотреть INSERT IGNORE сделать вставки игнорировать

ВСТАВИТЬ ИГНОРИРУЙТЕ INTO людей (значения ...)

1

Обратите внимание на уникальное ограничение на сервере SQl. Это обеспечивает уникальность при вставке в таблицу. В качестве альтернативы вы можете использовать «ЕСЛИ НЕ СУЩЕСТВУЕТСЯ», прежде чем вставлять какое-либо значение, чтобы проверить, существует ли оно в таблице для этого столбца, или вы можете достичь этого, добавив условия в предложение where перед вставкой в ​​таблицу.

+2

Нет никаких признаков того, что этот плакат использует SQL Server, поэтому мой комментарий к самому вопросу предлагает прочитать документацию для используемой СУБД. –

0

ли вы имеете в виду CREATE UNIQUE INDEX index_name ON table_name (column_name)