Проблем:
Бихте искали да направите дадена колона уникална в дадена таблица в база данни.
Пример:
Бихме искали да направим колоната name
уникален в таблицата product
. Заявката по-долу представя един начин да го направите.
Решение 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Дискусия:
В този пример дадена колона (колоната name
) беше направено уникално чрез добавяне на клаузата UNIQUE в края на колоната на дефиницията (name VARCHAR(100) UNIQUE
). Тази нова таблица (в нашия пример:product
) ще съдържа колоната (в нашия пример:name
), който съхранява уникални стойности в редове.
Решение 2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Дискусия:
В този пример таблицата product
вече съществува. Искаме да модифицираме тази таблица и да добавим уникално ограничение към колона name
. Това е възможно с помощта на ALTER TABLE
клауза. Първо пишем ALTER TABLE, след което изброяваме името на таблицата (в нашия пример:product
), а след това добавяме клаузата ADD CONSTRAINT
с името на уникалното ограничение (в нашия пример:UQ_product_name
). Това е последвано от ключовата дума UNIQUE с колона/колони (в нашия пример това е колона:name
) в скоби.
Можете също така да направите уникално ограничение за няколко колони. Ето как:
Решение 3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Дискусия:
В този пример продуктът на таблицата се променя с помощта на ALTER TABLE
клаузата и клаузата ADD CONSTRAINT с името на уникалното ограничение (в нашия пример:UQ_product_name_producer
), последвано от UNIQUE
ключова дума със списъка с колони (в нашия пример има две колони:name
и producer
) в скоби.