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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Правильный порядковый номер

Сообщения:  [1-4] 

 
 автор: Wyfinger   (26.09.2007 в 14:06)   письмо автору
 
   для: Dizels   (26.09.2007 в 13:24)
 

Весь смысл ключа auto_increment как раз в том и заключается, что он не повторяется никогда, в таблице есть внутренний счетчик, увеличивающийся при добавлении новой строки с автоинкремент полем и не уменьшающийся при удалении (вообще никогда не уменьшающийся).

Такой подход обеспечивает целостность ссылок при удалении строк.

Если Вам очень нужно получить порядковый номер в выборке можно использовать SQL запрос вида:

SET @n:=0;
SELECT @n:=@n+1 as `rownum`, `Id` FROM `table`


Если при добавлении нужно вставлять индекс именно Max(`Id`)+1, можно использовать php код, т.е. сначала найти Max(`Id`)+1, потом делать insert.

   
 
 автор: Dizels   (26.09.2007 в 14:05)   письмо автору
 
   для: sim5   (26.09.2007 в 13:55)
 

Т.е. получается нужно при добавлении страны это поле заполнять и убрать avto_increment?

   
 
 автор: sim5   (26.09.2007 в 13:55)   письмо автору
 
   для: Dizels   (26.09.2007 в 13:24)
 

Никак, это поле у вас с автоинкрементом.

   
 
 автор: Dizels   (26.09.2007 в 13:24)   письмо автору
 
 

Есть таблица:

REATE TABLE `country` ( 
  `id_country` int(6) NOT NULL auto_increment, 
  `name` mediumtext NOT NULL, 
  PRIMARY KEY  (`id_country`) 
) ENGINE=MyISAM DEFAULT CHARSET=cp1251; 


Проблема:
Если добавить несколько стран(в скобках буду указывать параметр id_country), к примеру Россия(1), Украина(2), Польша(3), США(4). После этого удалить США, Польшу. Потом добавить Великобританию, то порядковый номер(id_country) в таблице будет 5, а нужно, чтобы был 3, как это сделать?

P.S.
Скрипт добавления и удаления стран можно посмотреть по ссылке http://softtime.ru/forum/read.php?id_forum=1&id_theme=43713&page=1

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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