Chvalov
@Chvalov

Как сделать чтобы ID записи продолжал свой отчет от последней записи в БД MySQL ?

Здравствуйте, парни подскажите как побороть не правильное отображение id после удаления записей и добавление новых:
9f7248eb8e2b43efbebfe99fb5a0612a.PNG
Я удалил записи с ID от 3 до 6, после чего добавил новую, и теперь ID записи 7, лечиться это перезагрузкой сервера точнее самого MySQL и тогда оно считает от последней записи, как сделать чтобы не было нужды в перезагрузке ?
  • Вопрос задан
  • 6803 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Jemeron
Не использовать auto_increment
Ответ написан
Комментировать
@red_led
Варианта 2:
  • писать подзапрос при вставке в таблицу для принудительного задания id:
    SELECT MAX(id) + 1 FROM some_table 1 FROM some_table
  • после удаления записи обновлять автоинкримент: ALTER TABLE some_table AUTO_INCREMENT = del_id


В обоих вариантах это надо делать в транзакции. Во втором варианте ещё следить, чтобы не было удалений из середины таблицы или выполнять запрос только при удалении последнего (а это тоже отдельный запрос в транзакции)
Ответ написан
Комментировать
@WebEditor
скорее всего поле id содержит auto_increment. если он не нужен, то удалите его, и при вставке новой записи, получайте следующий id номер, пример:
INSERT INTO table(`id`, `time`) VALUES (
    (SELECT MAX(id) +1 FROM table), '$time'
)


а так вариантов как минимум три:
  1. удалить auto_increment
  2. использовать вариант предложенный @red_led
  3. написать триггер, который будет обновлять данные после вставки в базу данных


P.S.: код написан как пример.
P.P.S.: информация только для изучения, в реальных проектах так делать не стоит.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы