Общие > Базы данных
auto_increment
Ardzhan:
Есть поле id, тип longint, значение в нем задается при помощи auto_increment.
Допустим, мы создали 5 строк, а потом удалили строку с id=4.
У нас осталась "пустота" между 3 и 5. Как сдвинуть значение? Только через update?
А следующая созданная строка будет иметь id=6. Как изменить значение для след. создаваемой строки (autoindex)?
Stek:
А зачем это ?
Насколько знаю стандартного выхода нет, если только с перезаписыванием записей в новую таблицу.
Ardzhan:
Понятно... так и думал. :(
YA:
Почему нет выхода? После удаления записи с id=4:
UPDATE table SET id=id-1 WHERE id>3
Только, действительно, зачем это?
А еще, если ничего не путаю, в каких-то типах таблиц (не MyISAM) такой сдвиг id есть по-умолчанию.
Stek:
--- Цитировать ---Почему нет выхода? После удаления записи с id=4:
UPDATE table SET id=id-1 WHERE id>3
--- Конец цитаты ---
И так на 10,000 записей :)
--- Цитировать ---А еще, если ничего не путаю, в каких-то типах таблиц (не MyISAM) такой сдвиг id есть по-умолчанию
--- Конец цитаты ---
Если не ошибаю, то не сдвиг, а просто следующий при вставке id получит номер удаленного... хотя что есть не правильно.
Сталкнулся один раз с таким явлением, немного ругался :)
Навигация
Перейти к полной версии