Как применить несколько уникальных полей в таблице базы данных - PullRequest
1 голос
/ 27 марта 2010

У меня есть таблица с именем Cars, и первичным ключом таблицы является 'id'. У меня также есть поле с именем «имя». Я хотел бы убедиться, что никто не вводит одно и то же имя дважды, хотя это не нарушит мою целостность БД.

Каков наилучший способ сделать это?

Ответы [ 4 ]

2 голосов
/ 27 марта 2010
create unique index cars_unique_name on cars(name)
1 голос
/ 27 марта 2010

Просто создайте индекс UNIQUE в поле name. В SQL это будет примерно так:

CREATE UNIQUE INDEX IX_Cars_name 
ON Cars(name);

Другая возможность - создать unique constraint, например:

ALTER TABLE Cars
ADD CONSTRAINT Uqc_Cars_name 
UNIQUE (name)

Оба будут делать одно и то же.

0 голосов
/ 27 марта 2010

Как уже упоминалось, вам, вероятно, понадобится уникальный индекс, но также возможно использовать уникальное ограничение, без индекса, который может быть желателен в некоторых ситуациях ...

CREATE TABLE cars
(
    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED,
    NAME NVARCHAR(100) UNIQUE NOT NULL
)

или

ALTER TABLE cars  
ADD CONSTRAINT UniqueConstraintName UNIQUE (name)
0 голосов
/ 27 марта 2010

Вы можете указать ограничение уникального индекса как в команде CREATE TABLE, так и в команде ALTER TABLE.

Это как

СОЗДАТЬ СТОЛОВЫЕ АВТОМОБИЛИ ( id INT NOT NULL AUTO_INCREMENT ПЕРВИЧНЫЙ КЛЮЧ, название VARCHAR (100) УНИКАЛЬНЫЙ КЛЮЧ );

или просто создайте таблицу выше

СОЗДАТЬ СТОЛОВЫЕ АВТОМОБИЛИ ( id INT NOT NULL AUTO_INCREMENT ПЕРВИЧНЫЙ КЛЮЧ, имя VARCHAR (100) ); и позже добавьте индекс ключа unqiue, используя alter table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...