ddimonn8080
@ddimonn8080

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

Здравствуйте. Почему после удаления строки из базы даннх и добавления новой автоинкремент добаляет единицу как будто ничего не удалялось?Речь идет про MySql. Например, было две строки с id = 1 и id = 2. Удалил обе и добавил одну. У добавленной id равно 3. Почему так происходит?
  • Вопрос задан
  • 959 просмотров
Решения вопроса 3
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Несколько уточню, а то тут никто по делу так и не сказал.
Автоинкремент не убавляется потому, что это привело бы к проблемам с консистентностью. Если вы удалили строчку, а потом вставили новую - это уже другой ресурс и ID у него должен быть свой. Если вы хотите что-то обновить - для этого у вас есть UPDATE.
Вы, конечно, можете насильно вставлять с конкретным ID после удаления записи, но вероятнее всего, вы что-то делаете не так.
Ответ написан
Комментировать
romy4
@romy4
Exception handler
потому что autoincrement срабатывает только один раз перед вставкой. и никогда не отнимается при удалении и других операциях
Ответ написан
Комментировать
al_gon
@al_gon
Звучит глупо: автоинкремент только авто инкрементиеруется.
Но можно принудительно изменить ALTER TABLE tablename AUTO_INCREMENT = 1 что не есть всегда хорошая идея.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект