Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: обнулить primary key
 
 автор: levsha   (24.08.2007 в 10:33)   письмо автору
 
 

Я удалил все записи из таблицы и мне нужно чтобы при добавлении ключ опять начинался с 1, а не с последнего значения. Можно ли так сделать? Или надо удалять и заново создавать
таблицу?

   
 
 автор: cheops   (24.08.2007 в 10:49)   письмо автору
 
   для: levsha   (24.08.2007 в 10:33)
 

Либо обнуляйте таблицу при помощи оператора TRUNCATE TABLE, либо установите значение счётчика самостоятельно при помощи оператора ALTER TABLE
ALTER TABLE tbl AUTO_INCREMENT = 1;

   
 
 автор: Thrasher   (24.08.2007 в 10:50)   письмо автору
 
   для: levsha   (24.08.2007 в 10:33)
 

Сбрасывать значение автоинкрементного поля на 1 не имеет смысла.

   
 
 автор: ec_stasis   (24.08.2007 в 11:22)   письмо автору
 
   для: Thrasher   (24.08.2007 в 10:50)
 

Почему?

   
 
 автор: Thrasher   (24.08.2007 в 13:14)   письмо автору
 
   для: ec_stasis   (24.08.2007 в 11:22)
 

Потому-что оно не несет смысловой нагрузки, это не нумерация, это просто уникальная метка записи в таблице, и какого будет её цифровое значение не имеет абсолютно никакого значения.

   
 
 автор: cheops   (24.08.2007 в 13:49)   письмо автору
 
   для: Thrasher   (24.08.2007 в 13:14)
 

Иногда эти номера для навигации используются и не очень красиво, если разделы сайта начинаются с номера 624.

   
 
 автор: Thrasher   (24.08.2007 в 14:07)   письмо автору
 
   для: cheops   (24.08.2007 в 13:49)
 

>Иногда эти номера для навигации используются и не очень красиво, если разделы сайта начинаются с номера 624.

Согласен, используются и очень часто. Но для красоты и правильной сортировки по номеру, нужно вводить дополнительное числовое поле.

   
 
 автор: Trianon   (24.08.2007 в 14:32)   письмо автору
 
   для: cheops   (24.08.2007 в 13:49)
 

>Иногда эти номера для навигации используются и не очень красиво, если разделы сайта начинаются с номера 624.

Иногда программисты пишут программы, применяя плохие подходы.
Основывать советы на таких подходах еще менее красиво.

Если TRUNCATE в некоторых случаях хоть как-то осмысленен,
то ALTER TABLE tbl AUTO_INCREMENT = 1; имеет смысл применять только
и исключительно для исправления ошибки в БД,
но никак не в качестве оператора реальной программной ветви.

   
 
 автор: cheops   (24.08.2007 в 21:05)   письмо автору
 
   для: Trianon   (24.08.2007 в 14:32)
 

Никто не советовал использовать оператор ALTER TABLE в программном коде, этот оператор вообще не рекомендуется использовать в программном коде, если это не Web-интерфейс управления базой данных. Оператор административный.

ALTER TABLE tbl AUTO_INCREMENT = 1; советовался для применения после оператора DELETE, не обнулившего счётчик. Применялся бы этот оператор только один раз. Не нужно додумывать что-то за других - спекуляции никогда ни к чему хорошему не приводят.

   
 
 автор: Faraon   (24.08.2007 в 10:50)   письмо автору
 
   для: levsha   (24.08.2007 в 10:33)
 

Вроде так

ALTER TABLE table  AUTO_INCREMENT =1

   
 
 автор: levsha   (24.08.2007 в 11:16)   письмо автору
 
   для: Faraon   (24.08.2007 в 10:50)
 

Спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования