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

Форум MySQL

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

 

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

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

тема: Упорядочивание столбца после уничтожения нескольких записей в середине
 
 автор: Bycker   (18.12.2005 в 09:45)   письмо автору
 
 

У меня следующая проблема: имеется БД (MySQL). Первый столбец- номер записи, затем следуют остальные. Предположим, что удаляется к-л запись из таблицы. Каким образом осуществить пересчёт первого столбца, чтобы номера записей пришли в порядок? Заранее спасибо.

   
 
 автор: WebTech   (18.12.2005 в 10:41)   письмо автору
 
   для: Bycker   (18.12.2005 в 09:45)
 

-

   
 
 автор: cheops   (18.12.2005 в 13:35)   письмо автору
 
   для: Bycker   (18.12.2005 в 09:45)
 

Уничтожением и созданием по новой первого столбца.

   
 
 автор: WebTech   (18.12.2005 в 14:31)   письмо автору
 
   для: cheops   (18.12.2005 в 13:35)
 

Хм... хеопс, хотел я то же самое предложить... Сам никогда так не делал, а тут решил сначала на локальной попробовать. Следующим образом:

ALTER TABLE table DROP id, ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

Не работает :-( Пишет:
ERROR 1089 (HY000): Incorrect sub part key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique sub keys
MySQL 4.1.14
таблица MyISAM
Что можешь подсказать?

   
 
 автор: cheops   (18.12.2005 в 14:47)   письмо автору
 
   для: WebTech   (18.12.2005 в 14:31)
 

В одни запрос не получится, нужно сначала удалить одним ALTER TABLE, потом добавить другим ALTER TABLE...

   
 
 автор: WebTech   (18.12.2005 в 17:02)   письмо автору
 
   для: cheops   (18.12.2005 в 14:47)
 

Ага, точно :-) Спасибо. В общем надо так:

mysql> ALTER TABLE table DROP id;
mysql> ALTER TABLE table ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;
mysql> ALTER TABLE table AUTO_INCREMENT=1;

Последний оператор для того, чтобы все перенумеровалось, начиная с единицы.

   
Rambler's Top100
вверх

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