У меня есть таблица с 10 столбцами, но для этого нужны только 3 столбца. Представьте мой стол выглядит следующим образом:Сложное многостоечное уникальное ограничение
CREATE TABLE MyTable (RowID int IDENTITY(1,1), UserID int, NodeID int, RoleID int)
Что мне нужно, это ограничение, которое навязывает следующее: UserID и Идентификатор роли должны быть уникальными для каждого NodeID (т.е. пользователь не может иметь такую же роль в нескольких узлах). Другими словами, я хочу, чтобы
INSERT MyTable (UserID, NodeID, RoleID) SELECT 1, 1, 1
, но не позволяют
INSERT MyTable (UserID, NodeID, RoleID) SELECT 1, 2, 1
если первая вставка произошло потому, что приведет к тому, что пользователь, имеющий роль в нескольких узлах.
Надеюсь, это просто, и я просто делаю его более сложным, чем это должно быть в моем мозгу.
Что касается INSERT MyTable (UserID, NodeID, RoleID) SELECT 1, 2, 2? – bummi
Я в порядке с пользователем, имеющим две разные роли в двух разных узлах, так что все будет хорошо. Хороший вопрос. :) – influent
Тогда вы не ищете уникальную идентификатор UserID + RoleID? – kgu87