У меня есть таблица 'order_item' с order_item_id int order_id int
первичный ключ - order_item_id + order_id
Таким образом, order_item_id не является уникальным и не является order_id, но является комбинациейдва столбца уникальны.
Если клиент добавляет несколько товаров в свой заказ, у нас может быть такая таблица
order_item_id order_id
------------------------
1 5
2 5
3 5
4 5
... и если клиент затем удаляет order_item_id 2, тогдаэто пробел в последовательности.Order_item_id отображается для справки клиентов и используется при отправке заказов на покупку поставщикам.
Есть ли способ повторно упорядочить order_item_id для определенного order_id?Я пробовал следующее, но получаю сообщение об ошибке дубликата ключа, и оно продолжает изменять идентификатор первого найденного элемента на 0, а не 1.
SET @i := 0;
UPDATE order_item
SET order_item_id = (@i := @i + 1)
WHERE order_id = 5
ORDER BY order_id, order_item_id
Спасибо за любую помощь.