|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
Собственно все работает хорошо. Добавляю 5 записей - прекрастно, от 1 до 5 у записей. Удаляю первые 3 и индексы остаются старые т.е. отстается 2 записи и индексы у низ 3 и 4. Можно каким либо образом обносить данные таблицы чтобы индексы переделались в зависимости от удаленных записей ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 01:15 |
|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
kakawkinСобственно все работает хорошо. Добавляю 5 записей - прекрастно, от 1 до 5 у записей. Удаляю первые 3 и индексы остаются старые т.е. отстается 2 записи и индексы у низ 3 и 4. Можно каким либо образом обносить данные таблицы чтобы индексы переделались в зависимости от удаленных записей ? Хорошо. У меня таблица на 10 млн. записей. Я удаляю 5-ую запись сначала. 1. Ты что, правда ожидал, что БД при этом перелопатит и перенумерует все 10 млн записей? 2. А ничего, что на эти номера были ссылки в других таблицах? Или ты и их перелопатить предлагаешь? Ничего себе, запись удалили... БД на пол дня повисла, апдейтя терабайты данных ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 01:25 |
|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
kakawkin , ты вообще не должен совать нос в автоинкрементный индекс. Он не для тебя, а для нормальной работы подсистемы контроля ссылочной целостности. И не лезь своими руками, куда не следует! Хочешь номер по порядку? заведи для этого отдельное поле или расчитывай номера в запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 08:52 |
|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
2 Edd.Dragon Спасибо. Просто один "знающий" сказал мол мускул к этому готов и делает не долго и не сложно все. Понял - напишу ему что он неправ =) 2 Akina пожалуйста не оставляйте больше свои комментарии в моих нуботемах где спрашиваю кто и как - мне не приятно читать ваш бред т.к. в ваших словах гордость от того что вы знаете больше меня а я вот такой нуб и спрашиваю бредятину. Не все же такие профессионалы этого дела как вы ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 14:42 |
|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
kakawkin, Профессионалов очень раздражает, когда часто задают бессмысленные вопросы, на которые не десять и не сто раз отвечено. Т.ч. мне за коллегу совсем не стыдно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 15:42 |
|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
kakawkinПросто один "знающий" сказал мол мускул к этому готов и делает не долго и не сложно все. Понял - напишу ему что он неправ =)Тут есть частный случай - при удалении записей в движке InnoDB и перезапуске сервера нумерация продолжается с последней оставшейся в живых записи. Т.е. если было 1,2,3,4,5, удалили 5, перезапустили сервер, следующий номер будет опять 5. P.S. С эмоциональными формулировками Akina я не согласен, но технически он сказал все верно. Топик закрою во избежание эскалации отрицательных эмоций. Если у кого будет что сообщить по сути заданного вопроса - пишите в "сообщить модератору", добавлю в топик. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 15:52 |
|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
Поскольку нашелся желающий продолжить тему, добавляю: присланноеРешение по сути темы: Если очень хочется, можно так: ALTER TABLE test DROP COLUMN id; ALTER TABLE test ADD COLUMN id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (ID); Техническую корректность не проверял. Однако надо учесть, что порядок записей не сохранится. И "на эти номера были ссылки в других таблицах" остается в силе. И с производительностью у этого варианта не очень - таблица будет дважды скопирована. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 16:46 |
|
Пересчет индексов (AUTO_INCREMENT)
|
|||
---|---|---|---|
#18+
miksoft, ну .. Akina высказался конечно резко, но кмк, точно. Не надо задаваться вопросами, ради которых автоинкрементный ключ и придуман. Не нашего это ума дело. Но, если уж сильно горит (был у меня такой случай, и таки да с fkey и не одним) .. создаем дубликатное поле new_id с автоинкрементом, заполняем его, создаем дубли внешних ключей, связываем все это, навешиваем констрейны .. после чего исходные поля прибиваются за ненабодностью. Муторно и делать надо аккуратно, ибо пока все это размножается, в таблицы ещё с десяток записей прилетает.. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 20:07 |
|
|
start [/forum/topic.php?fid=47&msg=37588090&tid=1828286]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 412ms |
0 / 0 |