У меня есть следующее определение таблицы:
CREATE TABLE [Car]
(
CarID int NOT NULL PRIMARY KEY IDENTITY(1,1),
FirstColorID int FOREIGN KEY REFERENCES Colors(ColorID),
SecondColorID int FOREIGN KEY REFERENCES Colors(ColorID),
UNIQUE(FirstColorID, SecondColorID)
)
Я хочу, чтобы два столбца Color были уникальными, независимо от комбинации, в которой они появляются.
Например. попытка:
INSERT INTO Car (FirstColorID, SecondColorID) VALUES (1, 2); --should succeed
но затем попытка сделать то же самое после того, как эта первая запись существует с обратными цветами, должна завершиться неудачей:
INSERT INTO Car (FirstColorID, SecondColorID) VALUES (2, 1); --should violate constraint/check
Я решил эту проблему с помощью кода высокого уровня, но я бы предпочел, чтобы ограничение применялось непосредственно в базе данных, желательно без использования таких вещей, как триггеры.
Спасибо.