Mysql столбец переупорядочивается численно при удалении строки - PullRequest
0 голосов
/ 04 июля 2018

У меня есть такая таблица

id  Bill No   Branches_id
 1    1          1
 2    2          1
 3    3          1
 4    1          2
 5    4          1

когда пользователь удаляет счет № 2, все другие записи bill_no обновляются в числовом порядке, как это

id  Bill No   Branches_id
 1    1          1
 3    2          1
 4    1          2
 5    3          1

существует ли простой способ переупорядочить все записи без цикла программно

1 Ответ

0 голосов
/ 04 июля 2018

Похоже, что id является первичным ключом, и вы хотите обновить другой столбец в каждом счете. Это может быть разумным.

Вы можете использовать переменные:

declare @rn := 0;

update likethis lt
    set bill_no = (@rn := @rn + 1)
    where lt.branches_id = 1
    order by lt.id;

Обратите внимание, что все внешние ссылки на таблицу должны использовать id. Если bill_no используется для соединения с другой таблицей, вам не следует изменять значение (даже с каскадными внешними ключами), за исключением случаев, когда это происходит очень редко.

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