Есть таблица переводов, где есть поля:
INSERT INTO `translate` (`translate_id`, `title_ru`, `title_en`, `type`, `cat_id`)
VALUES
(1, 'абц 0001', 'abc 0001', 1, 10),
(2, 'абц 0001', 'abc 0002', 1, 10),
(3, 'деф 0001', 'def 0001', 2, 20),
(4, 'деф 0002', 'def 0002', 2, 20),
(5, 'деф 0001', 'def 0001', 3, 30),
(6, 'деф 0001', 'def 0002', 3, 30);
Индексы:
PRIMARY translate_id
UNIQUE title_en, type, cat_id
title_en - всегда уникальное значение, но с привязкой к категории (cat_id) и типу (type). Т.е. если убрать зависимость этих двух параметров - начнут появляться дубли.
Теперь проблема на примере translate_id 3,4,5,6. Я делаю замену по полю title_en с 'def 0001' на 'def 0002' и в конечном итоге получаю дубли и соответственно ошибку.
Как лучше всего реализовать механизм объединения дублей? Например, после поиска и замены получить:
INSERT INTO `translate` (`translate_id`, `title_ru`, `title_en`, `type`, `cat_id`)
VALUES
(1, 'абц 0001', 'abc 0001', 1, 10),
(2, 'абц 0001', 'abc 0002', 1, 10),
(3, 'деф 0001', 'def 0002', 2, 20),
/*(4, 'деф 0002', 'def 0002', 2, 20), дублирующаяся запись была удалена*/
(5, 'деф 0001', 'def 0002', 3, 30);
/*(6, 'деф 0001', 'def 0002', 3, 30); дублирующаяся запись была удалена*/
Заранее спасибо за ответы!