В целом, вам следует избегать ручного вмешательства в столбец с автоинкрементом. Это означает, среди прочего, что когда вы вставляете данные в вашу таблицу, вы должны опустить столбец автоинкремента, что позволяет MySQL автоматически присваивать ему значение.
Возможно, лучшим решением здесь было бы иметь третий столбец отметки времени, который записывает, когда каждая запись была вставлена. Затем вы можете использовать ROW_NUMBER
для генерации необходимой последовательности, например,
SELECT
ROW_NUMBER() OVER (ORDER BY ts_column) id,
name
FROM yourTable
ORDER BY
id;
Вы можете также иметь возможность заказать ROW_NUMBER
, используя столбец id
, и получить тот же результат. Если вы используете версию MySQL более ранней, чем 8+, вы можете смоделировать ROW_NUMBER
с помощью пользовательских переменных.