Обновлять индексы внутреннего списка на многих сторонах отношения один ко многим - PullRequest
0 голосов
/ 20 мая 2011

У меня есть таблица с повреждением данных.

Таблица имеет много сторон отношения один ко многим, например, order и orderItem.

Элементы заказа находятся в списке, и код сохраняет их в порядке, используя индекс.Индекс иногда выходит из строя, поэтому вместо записей индекса, равных 0, 1, 2, 3 и т. Д., Он равен 0, 3, 4, 4 или 1, 2, 3, 4, 5 и т. Д.

У меня есть запрос, который определяет порядок, в котором это происходит, но теперь я хочу иметь возможность

Я использую MySQL 5.077.

Эта ссылка имеет решение для другой базы данных, но не знает, как перейти на MySQL.http://haacked.com/archive/2004/02/28/sql-auto-increment.aspx

любые советы приветствуются.

1 Ответ

1 голос
/ 20 мая 2011

как насчет этого:

SET @RowCount = -1;

UPDATE <table>
SET    <index> = (@RowCount := @RowCount + 1)
WHERE  ...
ORDER BY ...;

Если вам нужно переназначить индексы в определенном порядке, вы можете использовать ORDER BY. Я не думал, что это сработает, но у меня работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...