Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обнулить ID, если таблица была очищена? 
V
    Опции темы
ukrsonic
Дата 25.1.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.11.2007

Репутация: нет
Всего: 1



Здравствуйте,

почистил таблицу от тестовых записей, и поле id естесна пустое.

Вставляю новые данные, INSERT INTO table VALUES ('NULL', 'value1'....) 
 
Потом, просматриваю данные, как они вставились. Смотрю в поле id а там 0025, 0026, 0027.....
хотя полагал что будет так id = 0001, 0002, 0003, ...

Странно, видимо MySQL держит в памяти последний индентификатор поля ID, т.к. начинает делать AUTO_INCREMENT не с нуля. 

Чем такое может быть вызвано? Или как сделать reset поля id?

К базе использую постоянное соединение mysql_pconnect();

PM MAIL   Вверх
bars80080
Дата 25.1.2008, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



id - штука уникальная, она по-любому будет не повторяться, так и должно быть

а зачем тебе обнуление? причин не вижу
PM MAIL WWW   Вверх
MoLeX
Дата 25.1.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



вроде так
Код

ALTER TABLE `таблицы` PACK_KEYS=0 CHECKSUM=0 DELAY_KEY_WRITE=0 AUTO_INCREMENT=1



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 25.1.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



А TRUNCATE TABLE разве автоинкремент не сбрасывает?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
sTa1kEr
Дата 25.1.2008, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 9
Всего: 146



Цитата(SelenIT @  25.1.2008,  18:17 Найти цитируемый пост)
А TRUNCATE TABLE разве автоинкремент не сбрасывает? 

Совершенно верно, "TRUNCATE TABLE" сбрасывает автоинкремент. 12.2.9. TRUNCATE Syntax
Цитата

The table handler does not remember the last used AUTO_INCREMENT value, but starts counting from the beginning. This is true even for MyISAM and InnoDB, which normally do not reuse sequence values.

Более того, в отличии от DELETE, он работает моментально для таблиц MyISAM
Так же можно сбросить автоинкремент запросом
Код

ALTER TABLE `table` AUTO_INCREMENT=1;

12.1.5. CREATE TABLE Syntax
Цитата

For engines that support the AUTO_INCREMENT table option in CREATE TABLE statements, you can also use ALTER TABLE tbl_name  AUTO_INCREMENT = N to reset the AUTO_INCREMENT value. The value cannot be set lower than the maximum value currently in the column.


MoLeX
Цитата(MoLeX @  25.1.2008,  17:01 Найти цитируемый пост)
ALTER TABLE `таблицы` PACK_KEYS=0 CHECKSUM=0 DELAY_KEY_WRITE=0 AUTO_INCREMENT=1

Вытащили из какой-то CMS-ки? smile Тогда уж следовало пояснить для чего нужен каждый параметр. К примеру, с чего вы взяли, что ukrsonic необходимо хранить индексы с уменьшенным размером (PACK_KEYS=0) ? Или для отключения задержки перед обновлением ключей (DELAY_KEY_WRITE=0), нужно иметь ввиду
Цитата

Note that if you enable external locking with --external-locking, there is no protection against index corruption for tables that use delayed key writes.

К тому же не факт, что используется именно MyISAM таблица.

Добавлено @ 18:26
Перед тем как советовать тот или иной код, нужно понимать что он делает и к каким последствиям это может привести, а не надеяться на то, что раз кто-то так делает, значит так правильно. smile

Это сообщение отредактировал(а) sTa1kEr - 25.1.2008, 18:26
PM MAIL   Вверх
MoLeX
Дата 26.1.2008, 10:03 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



Цитата(sTa1kEr @  25.1.2008,  18:18 Найти цитируемый пост)
Вытащили из какой-то CMS-ки

нет. для этого есть пхпмайадмин))))

Добавлено через 1 минуту и 1 секунду
Цитата(sTa1kEr @  25.1.2008,  18:18 Найти цитируемый пост)
Перед тем как советовать тот или иной код, нужно понимать что он делает и к каким последствиям это может привести, а не надеяться на то, что раз кто-то так делает, значит так правильно.

вообщето я его протестил и он сработал. так что sTa1kEr тут ты не прав.  


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
ukrsonic
Дата 26.1.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 29.11.2007

Репутация: нет
Всего: 1



Прошу всех извинить меня за задержку с ответом.

Я попробовал этот вариант TRUNCATE [TABLE] tbl_name и он отлично сработал.

AUTO_INCREMENT обнулился! 
(Все данные в таблице удалились тоже. Будте осторожны!)

Спасибо огромное!  smile 

Вопрос закрыт! smile 

Это сообщение отредактировал(а) ukrsonic - 26.1.2008, 22:06
PM MAIL   Вверх
Golda
Дата 27.1.2008, 09:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 6
Всего: 42



MoLeXsTa1kEr не утверждал, что Ваш вариант запроса не сбросит автоинкремент. Он обращал Ваше внимание на то, что этот запрос, кроме сброса sequence для автоинкрементного поля, может привести и к другим последствиям. И прежде чем его применять, стоит разобраться, к каким именно и в каком случае. Так что то, что Вы проверили значение нового id   после этого запроса, ничего не меняет


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.