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

Форум MySQL

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

 

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

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

тема: Как исправить значение автоинкрементного поля?
 
 автор: Mpak   (26.01.2007 в 14:09)   письмо автору
 
 

Вот наглядный пример:

Заполнили:

+-------------------+
| ID | Name | Passw |
+----+------+-------+
| 1  | user1|  123  |
| 2  | user2|  123  |
| 3  | user3|  123  |
+----+------+-------+


Удалили:

+-------------------+
| ID | Name | Passw |
+----+------+-------+
| 1  | user1|  123  |
| 2  | user2|  123  |
+----+------+-------+


Опять заполнили:

+-------------------+
| ID | Name | Passw |
+----+------+-------+
| 1  | user1|  123  |
| 2  | user2|  123  |
| 4  | user4|  123  |
+----+------+-------+


в базе есть три уже заполненых строчки.
user3 удаляется.
Вводится user4, но автоинкрементному полю присваивается уже 4....
Как исправить это?

   
 
 автор: mirage   (26.01.2007 в 14:27)   письмо автору
 
   для: Mpak   (26.01.2007 в 14:09)
 

да вроде никак и не исправишь, на то и автоинкремент, если толко методом перебора будишь искать свободное значение и вставлять его вручную.

А зачем вам это ?

   
 
 автор: Trianon   (26.01.2007 в 14:30)   письмо автору
 
   для: Mpak   (26.01.2007 в 14:09)
 

Это НЕ надо исправлять.
Автоинкрементное поле сделали вовсе не для нумерации строк в таблице.

   
 
 автор: Mpak   (26.01.2007 в 15:22)   письмо автору
 
   для: Trianon   (26.01.2007 в 14:30)
 

>Это НЕ надо исправлять.
>Автоинкрементное поле сделали вовсе не для нумерации строк в таблице.

Понял отстал ;-)
Дошло...:)

   
 
 автор: Mpak   (26.01.2007 в 15:29)   письмо автору
 
   для: Mpak   (26.01.2007 в 15:22)
 

А считать заново (обнулить) возможно?

   
 
 автор: Trianon   (26.01.2007 в 15:33)   письмо автору
 
   для: Mpak   (26.01.2007 в 15:29)
 

поле обнуляется при выполнении оператора TRUNCATE.
В других ситуациях, опять же - незачем .

   
 
 автор: Mpak   (26.01.2007 в 16:02)   письмо автору
 
   для: Trianon   (26.01.2007 в 15:33)
 

>В других ситуациях, опять же - незачем .

При полном очищении таблицы, его же надо обнулить ;-)

   
 
 автор: Trianon   (26.01.2007 в 16:29)   письмо автору
 
   для: Mpak   (26.01.2007 в 16:02)
 

нет.

   
 
 автор: Mpak   (26.01.2007 в 16:47)   письмо автору
 
   для: Trianon   (26.01.2007 в 16:29)
 

Почему?
А как тогда?

   
 
 автор: dert   (26.01.2007 в 16:50)   письмо автору
 
   для: Mpak   (26.01.2007 в 16:47)
 

Если Вы выполните запрос TRUNCATE то очистится вся таблица и поле auto_increment обнулится

   
 
 автор: Kingkong   (30.01.2007 в 21:43)   письмо автору
 
   для: dert   (26.01.2007 в 16:50)
 

Можно порсто :
ALTER TABLE incrementos AUTO_INCREMENT=0;
Тогда инкремент в следующий раз присвоит максимально имеющееся +1

   
Rambler's Top100
вверх

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