@baimkin

Как составить запрос IF INSERT ELSE UPDATE?

Добрый день.
Есть таблица в которую нужно вставлять данные с проверкой уникальности.
Поставщик - Название - Бренд - Код - Артикул

Нужно вставлять записи с проверкой уникальности, но комбинаций уникальности может быть 4 вида:
Поставщик + Артикул
Поставщик + Бренд + Код
Поставщик + Код
Поставщик + Название

Повесить 4 уникальных индекса нельзя, т.к к примеру могут быть такие данные:
Поставщик - Артикул - Название
Ситилинк+ 32542 + Телевизор
Ситилинк+ 32696 + Телевизор

т.е по артикулу будет уникальность, но по названию будет конфликт, а обе строки надо записать в таблицу т.к они фактически разные, по это причине ON DUPLICATE KEY UPDATE не подойдет.

Хочу сделать вставку данных через прeпредварительный
SELECT COUNT(*) FROM table WHERE `Поставщик ` = 1 AND `Артикул ` IS NULL AND `Название` = 'Телевизор'  INTO @Var1;


Пробовал:
if (@Var1= 0)  (INSERT INTO table SET column = 1)
else (UPDATE  table SET column = 1 WHERE id = 2)


и
CASE WHEN @Var1 = 0 THEN (INSERT INTO table SET column = 1)
ELSE  (UPDATE  table SET column = 1 WHERE id = 2)
END


Подскажите как делать вставку записи с предварительной проверкой условия.
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вы уж определитесь. Либо "Поставщик + Название" - уникальная пара, либо возможны дубликаты этой пары.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы