powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пересчет индексов (AUTO_INCREMENT)
8 сообщений из 8, страница 1 из 1
Пересчет индексов (AUTO_INCREMENT)
    #37588083
kakawkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно все работает хорошо. Добавляю 5 записей - прекрастно, от 1 до 5 у записей. Удаляю первые 3 и индексы остаются старые т.е. отстается 2 записи и индексы у низ 3 и 4.

Можно каким либо образом обносить данные таблицы чтобы индексы переделались в зависимости от удаленных записей ?
...
Рейтинг: 0 / 0
Пересчет индексов (AUTO_INCREMENT)
    #37588090
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kakawkinСобственно все работает хорошо. Добавляю 5 записей - прекрастно, от 1 до 5 у записей. Удаляю первые 3 и индексы остаются старые т.е. отстается 2 записи и индексы у низ 3 и 4.

Можно каким либо образом обносить данные таблицы чтобы индексы переделались в зависимости от удаленных записей ?
Хорошо. У меня таблица на 10 млн. записей. Я удаляю 5-ую запись сначала.

1. Ты что, правда ожидал, что БД при этом перелопатит и перенумерует все 10 млн записей?
2. А ничего, что на эти номера были ссылки в других таблицах? Или ты и их перелопатить предлагаешь?

Ничего себе, запись удалили... БД на пол дня повисла, апдейтя терабайты данных
...
Рейтинг: 0 / 0
Пересчет индексов (AUTO_INCREMENT)
    #37588236
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kakawkin , ты вообще не должен совать нос в автоинкрементный индекс. Он не для тебя, а для нормальной работы подсистемы контроля ссылочной целостности.

И не лезь своими руками, куда не следует!

Хочешь номер по порядку? заведи для этого отдельное поле или расчитывай номера в запросе.
...
Рейтинг: 0 / 0
Пересчет индексов (AUTO_INCREMENT)
    #37589042
kakawkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Edd.Dragon
Спасибо. Просто один "знающий" сказал мол мускул к этому готов и делает не долго и не сложно все. Понял - напишу ему что он неправ =)

2 Akina
пожалуйста не оставляйте больше свои комментарии в моих нуботемах где спрашиваю кто и как - мне не приятно читать ваш бред т.к. в ваших словах гордость от того что вы знаете больше меня а я вот такой нуб и спрашиваю бредятину. Не все же такие профессионалы этого дела как вы
...
Рейтинг: 0 / 0
Пересчет индексов (AUTO_INCREMENT)
    #37589203
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kakawkin,

Профессионалов очень раздражает, когда часто задают бессмысленные вопросы, на которые не десять и не сто раз отвечено. Т.ч. мне за коллегу совсем не стыдно.
...
Рейтинг: 0 / 0
Пересчет индексов (AUTO_INCREMENT)
    #37589240
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kakawkinПросто один "знающий" сказал мол мускул к этому готов и делает не долго и не сложно все. Понял - напишу ему что он неправ =)Тут есть частный случай - при удалении записей в движке InnoDB и перезапуске сервера нумерация продолжается с последней оставшейся в живых записи.
Т.е. если было 1,2,3,4,5, удалили 5, перезапустили сервер, следующий номер будет опять 5.

P.S. С эмоциональными формулировками Akina я не согласен, но технически он сказал все верно. Топик закрою во избежание эскалации отрицательных эмоций. Если у кого будет что сообщить по сути заданного вопроса - пишите в "сообщить модератору", добавлю в топик.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Пересчет индексов (AUTO_INCREMENT)
    #40023699
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку нашелся желающий продолжить тему, добавляю:
присланноеРешение по сути темы:

Если очень хочется, можно так:
ALTER TABLE test DROP COLUMN id;
ALTER TABLE test ADD COLUMN id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (ID);

Техническую корректность не проверял.
Однако надо учесть, что порядок записей не сохранится. И "на эти номера были ссылки в других таблицах" остается в силе.
И с производительностью у этого варианта не очень - таблица будет дважды скопирована.
...
Рейтинг: 0 / 0
Пересчет индексов (AUTO_INCREMENT)
    #40023753
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

ну .. Akina высказался конечно резко, но кмк, точно. Не надо задаваться вопросами, ради которых автоинкрементный ключ и придуман. Не нашего это ума дело.

Но, если уж сильно горит (был у меня такой случай, и таки да с fkey и не одним) .. создаем дубликатное поле new_id с автоинкрементом, заполняем его, создаем дубли внешних ключей, связываем все это, навешиваем констрейны .. после чего исходные поля прибиваются за ненабодностью. Муторно и делать надо аккуратно, ибо пока все это размножается, в таблицы ещё с десяток записей прилетает.. :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пересчет индексов (AUTO_INCREMENT)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]