|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » MySQL - auto_increment в id. |
|
MySQL - auto_increment в id.
|
Пользователь Сообщения: 90 |
Профиль | Сайт | Отправить PM | Цитировать В таблице 50 записей
id smallint(6) auto_increment С 45 – 50 записи со временем были удалены. По идеи когда создается новая запись новый id должен быть 45, однако он ставит 51… Где это храниться и как сбросить. PS что такой форум стал тяжелый, по 300 кб одна страница :(, в Москве то траффик практически даром, но на куличках Мб довольно дорогой. |
|
Отправлено: 13:41, 10-02-2005 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Вот так работает auto_increment.
По идее должно быть как раз 51, а не 45. auto_increment - это не порядковый номер записи, а счетчик, который генерит очередное число для каждой операции вставки, обеспечивая тем самым уникальность поля. Твою задачу, как мне кажется, возможно решить только испольуя внешнюю функцию для генерирования порядкового номера записи. правда, не совсем понятно, зачем всё это нужно... |
------- Отправлено: 14:03, 10-02-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать LEXX2002
1) все как сказал Oaxa 2) работа ведется... в ближайшее время будут результаты! |
------- Отправлено: 14:29, 10-02-2005 | #3 |
Пользователь Сообщения: 90
|
Профиль | Сайт | Отправить PM | Цитировать Писать функцию не есть хорошо .
Это надо читать все ID, и если есть промежуток в числовом ряде n! то пихать туда. А нужно в принципе для красоты, а то ID меню идёт 1,2,3, и сразу 55. Понятно, что auto_increment не будет искать свободное число в ряду, и пихнёт сразу последнее, хотя если ряд состоит 1,2,…45 и удаленные 46,47,48,49,50, то откуда он видит стоку 50, если её удалили. Мануал не дал ответа, не очень владеем анг. |
Отправлено: 14:44, 10-02-2005 | #4 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать LEXX2002
в общем все так как есть... а если ты поработаешь по больше создавая и проектирую базы данных, то поймешь что такая организация действительно правильная и удобная для постраения баз данных! |
|
------- Отправлено: 14:50, 10-02-2005 | #5 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
------- Отправлено: 15:20, 10-02-2005 | #6 |
Ветеран Сообщения: 659
|
Профиль | Отправить PM | Цитировать LEXX2002
При delete from table записи физически не удаляются, только помечаются как удаленные (чтоб не грузить сервер и диски сервера по перезаписи больших объемов данных, попробуй использовать optimize table, это очистит удаленные записи и возможно сбросит счетчик записей, но я не уверен про записи... вообщем пробуй |
Отправлено: 17:34, 11-02-2005 | #7 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать archy
Это не сбросит счетчик auto_increment , 100%. ты можешь установить этот счетчик в нужное значение, исполбзуя конструкцию типа: ALTER TABLE tbl_name AUTO_INCREMENT = value; |
------- Отправлено: 19:15, 11-02-2005 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
mysql | simon171078 | Вебмастеру | 2 | 11-11-2008 22:25 | |
MySQL - MySQL & MySQL-Front | timon4ik | Программирование и базы данных | 2 | 06-04-2008 18:07 | |
[MySQL]auto_increment и триггер | Kerbit | Вебмастеру | 11 | 14-11-2006 21:43 | |
MySQL | alex r | Общий по Linux | 8 | 03-09-2003 11:04 | |
MySQL | UZER | Хочу все знать | 2 | 31-07-2003 00:22 |
|