Общие > Базы данных

auto_increment

(1/3) > >>

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 получит номер удаленного... хотя что есть не правильно.
Сталкнулся один раз с таким явлением, немного ругался :)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии