![]() |
MySQL - auto_increment в id.
В таблице 50 записей
id smallint(6) auto_increment С 45 – 50 записи со временем были удалены. По идеи когда создается новая запись новый id должен быть 45, однако он ставит 51… Где это храниться и как сбросить. PS что такой форум стал тяжелый, по 300 кб одна страница :(, в Москве то траффик практически даром, но на куличках Мб довольно дорогой. |
Вот так работает auto_increment.
По идее должно быть как раз 51, а не 45. auto_increment - это не порядковый номер записи, а счетчик, который генерит очередное число для каждой операции вставки, обеспечивая тем самым уникальность поля. Твою задачу, как мне кажется, возможно решить только испольуя внешнюю функцию для генерирования порядкового номера записи. правда, не совсем понятно, зачем всё это нужно... |
LEXX2002
1) все как сказал Oaxa 2) работа ведется... в ближайшее время будут результаты! |
Писать функцию не есть хорошо :(.
Это надо читать все ID, и если есть промежуток в числовом ряде n! то пихать туда. А нужно в принципе для красоты, а то ID меню идёт 1,2,3, и сразу 55. Понятно, что auto_increment не будет искать свободное число в ряду, и пихнёт сразу последнее, хотя если ряд состоит 1,2,…45 и удаленные 46,47,48,49,50, то откуда он видит стоку 50, если её удалили. Мануал не дал ответа, не очень владеем анг. |
LEXX2002
в общем все так как есть... а если ты поработаешь по больше создавая и проектирую базы данных, то поймешь что такая организация действительно правильная и удобная для постраения баз данных! |
Цитата:
|
LEXX2002
При delete from table записи физически не удаляются, только помечаются как удаленные (чтоб не грузить сервер и диски сервера по перезаписи больших объемов данных, попробуй использовать optimize table, это очистит удаленные записи и возможно сбросит счетчик записей, но я не уверен про записи... вообщем пробуй |
archy
Это не сбросит счетчик auto_increment , 100%. ты можешь установить этот счетчик в нужное значение, исполбзуя конструкцию типа: ALTER TABLE tbl_name AUTO_INCREMENT = value; |
Время: 08:39. |
Время: 08:39.
© OSzone.net 2001-