У меня есть таблица:SQL уникального constrait с таможенной стоимостью
id emp_id company role
1 3 1 0
2 2 1 0
3 1 1 1
Мне нужно ограничить добавление 2 сотрудников для компании с role = 1
. Как уникальный ключ для компании & роль, но только для role = 1;
Иными словами, INSERT INTO table (emp_id, company, role) (4, 1, 1)
должен потерпеть неудачу.
Единственный способ сделать это в моей голове - использовать триггеры. Есть ли другой способ?
Создайте составной ключ с более чем одним столбцом, который позволит решить вашу проблему (нет необходимости использовать триггеры) –
@securedeveloper, но он хочет разрешить создание нескольких строк с 'role = 0'. – benji
« Есть ли еще один путь?" не без рисунка стола, который я могу придумать ... @securedeveloper как? составной ключ на роль компании не позволит компании 1 иметь 2 роли 0 ..., которая разрешена ... 'insert, где не существует (компания с ролью 1), то же самое для обновления ...' но это не применяет ее .. триггер - единственный способ обеспечить его соблюдение без ограничения или сложного ключа без изменения дизайна таблицы. – xQbert