@Mattspr

Ключ добавляется не по порядку, можно ли изменить?

есть таблица с ключом (auto increment, not null), есть, предположим 3 записи с ключом 1,2,3 и если добавить ещё одну с ключом 7 (1, 2, 3, 7) и позже удалить её, то при последующем добавлении записи без указания ключа, то ключ установиться как 8 (1, 2, 3, 8) а не 4, можно ли как то исправить?
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Держите: befused.com/mysql/reset-auto-increment
А вообще, пару недель назад был такой же вопрос и решалось все 1 строкой в конфигурации. Если найду его - дополню ответ.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
kimono
@kimono
Web developer
ALTER TABLE `tbl` AUTO_INCREMENT = 4;
Ответ написан
Комментировать
svd71
@svd71
что такое ключ в таблице? Это данные, добавляющие уникальность поля. И нарушать эту безопасность во время работы абсолютно не нужно - рисуете потерять связи с другими таблицами. Есть, конечно, всякие методы о каскадировании, но обычно кто пользуется к аскадированием не занимется подобными решениями.

Если вы переживаете о том, что на ваш век циферей в ключе не хватит, то сначала посчитайте количество возможных вариантов в целочисленном виде. 32-бита дают 4294967295 вариантов. Даже если добавлять в секунду одну запись, то этих значений хватит на 4294967295/(60*60*24) =49710 дней = 136 лет.

Но даже в таких случаях просто увеличивают разрядность. Например 64 разряда дают число 9.223372e+18. На сколько хватит этого размера посчитайте сами.

Но речь идет о мускуле, который имеет своих тараканов. А в часности: при объявлении поля типом int генерируется размер доспупный на 10 десятичных знаков. В нем умещается масимальное значение 9999999999 равное приблизительно 317и годам.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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