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

Форум MySQL

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

 

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

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

тема: Удаление данных из таблицы и автоинкрементное поле

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

 
 автор: cheops   (25.07.2005 в 12:45)   письмо автору
 
   для: Loki   (25.07.2005 в 09:24)
 

Никак не документировано, так как способ удаления - это внутреннее дело СУБД. Скорее всего не поменяется, но я бы лучше после каждого удаления явно устанавливал бы значение AUTO_INCREMENT...

   
 
 автор: Loki   (25.07.2005 в 09:24)   письмо автору
 
   для: cheops   (23.07.2005 в 23:42)
 

Да это понятно - на поверхности лежит:) Вопрос-то был: насколько эта штука документирована, и не перестанет ли она в какой-то момент работать?:)

   
 
 автор: cheops   (23.07.2005 в 23:42)   письмо автору
 
   для: Loki   (23.07.2005 в 20:37)
 

Это штучки оптимизатора, он когда видит DELETE без WHERE-условия - вызывает на самом деле TRUNCATE - чего время то терять :)))

   
 
 автор: Loki   (23.07.2005 в 20:37)   письмо автору
 
   для: cheops   (23.07.2005 в 19:06)
 

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

   
 
 автор: cheops   (23.07.2005 в 19:06)   письмо автору
 
   для: Loki   (23.07.2005 в 17:20)
 

TRUNCATE - очищает таблицу
DELETE - удаляет записи одну за другой, и гораздо медленнее TRUNCATE.
Хм... вообще говоря вы можете назначать значение AUTO_INCREMENT сами при помощи оператора ALTER TABLE
ALTER TABLE tbl AUTO_INCREMENT = 1;

   
 
 автор: Loki   (23.07.2005 в 17:20)   письмо автору
 
 

Необходимо очищать таблицу с сохранением нумерации автоинкрементного поля.

TRUNCATE table

и

DELETE FROM table

сбрасывают нумерацию, а

DELETE FROM table WHERE 1

только удаляет данные.
Хочется узнать, насколько эта функция документирована? И не ждет ли меня при перенастройке сервера или смене версии mysql неприятный сюрприз?
Ну или может есть более грамотный способ.

   

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

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

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