@Artem0071
Безработный mr. Junior

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

Есть таблица categories(shop_id, index, title)
И есть индекс на shop_id и index чтобы они не повторялись (чтобы у магазина не было одинаковых индексов)

Так вот, пробую такой запрос:
update `categories` set `index` = `index` + 1 where `shop_id` = '23eb94c0-1a19-11e8-acea-ade469f32ac7'


То есть просто хочу увеличить индекс на 1 у всех категорию конкретного магазина
Но БД выдает следующее:
#1062 - Дублирующаяся запись '1-23eb94c0-1a19-11e8-acea-ade469f32ac7' по ключу 'categories_index_shop_id_unique'


То есть он говорит что получаются не уникальные связки полей

НО при этом если делать не инкремент, а наоборот отнимать единицу, то все работает:
update `categories` set `index` = `index` - 1 where `shop_id` = '23eb94c0-1a19-11e8-acea-ade469f32ac7'


Как это можно починить?
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
0xD34F
@0xD34F
Попробуйте обновлять по значению столбца в обратном порядке: ORDER BY index DESC.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
от 160 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
16 авг. 2018, в 09:18
30000 руб./за проект
16 авг. 2018, в 08:17
600 руб./в час
15 авг. 2018, в 23:38
300 руб./за проект