Задать вопрос
@mr_Verman

Как в mysql сделать уникальный индекс при таком условии?

Есть таблица `my_table`. В ней есть поля id(INT), item_id(INT), is_main(0,1). Нужно чтобы соблюдалось условие, что у среди записей с одинаковым item_id может быть только одна запись is_main = 1, все остальные записи c одинаковым item_id должны быть is_main = 0. Собственно уникальный индекс по item_id+is_main не подходит, так как может быть много записей с is_main= 0 с одинаковым item_id. Как быть?
  • Вопрос задан
  • 320 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя evnuh К ответам на вопрос (4)
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Сделайте is_main NULLABLE и замените везде 0 на NULL. NULL-ы всегда уникальные, если можно так выразиться) Поэтому уникальный индекс по item_id + is_main будет ОК.
Ответ написан
Комментировать