У меня есть таблица с 3000 записей. Я произвольно выбираю 25 из тех, которые будут перенесены в другую таблицу. Как только это будет сделано, я хочу, чтобы идентификаторы (которые назначены AUTO_INCREMENT и являются первичным ключом) в исходной таблице, чтобы быть в последовательности, чтобы я мог выполнить следующую итерацию. Как мне это сделать?Как переупорядочить идентификатор AUTO_INCREMENT в MySQL после удаления нескольких записей?
ответ
Мы не можем изменить значение auto_increment на значение, отличное от текущего максимального значения.
Единственный другой способ изменить его на значение чуть выше текущего максимального значения - это вручную изменить значение счетчика AUTO_INCREMENT на максимальное (значение) +1.
Поэтому я предполагаю, что вы должны заказать записи по возрастанию по существующему идентификатору после удаления 25 записей и вручную установить значение id каждой записи в соответствии с увеличивающейся переменной и в конце установить значение счета AUTO_INCREMENT как значение переменной в конце +1.
Пример:
ALTER TABLE Т SET AUTO_INCREMENT = some_value;
Хотя рекомендуется оставлять AUTO_INCREMENT в одиночку и избегать всего этого, если это делается только ради того, чтобы сделать идентификаторы великолепными, и нет другой вероятной причины.
Это 1% от решения. Остальные 99% отслеживают все ссылки на эти значения и корректируют их, а также очищают возникающий беспорядок, который неизбежно произойдет. – tadman
- 1. Сбросить значение Auto_Increment после удаления данных MySQL
- 2. Уникальный идентификатор записей MySQL
- 3. сделать идентификатор в таблице mysql auto_increment (после факта)
- 4. Auto Increment после удаления в MySQL
- 5. Каков наиболее эффективный способ удаления нескольких записей с сервера MySQL?
- 6. Как разместить идентификатор в базе данных mysql после удаления строки?
- 7. Как получить идентификатор AUTO_INCREMENT из вставленной записи в спящем режиме?
- 8. Предотвращение удаления записей mysql по php
- 9. Mysql триггер после удаления из нескольких таблиц
- 10. Почему MySQL auto_increment пропускает числа
- 11. Получить значение auto_increment нескольких строк из MySQL в пакетном режиме
- 12. Отрегулировать auto_increment поле первичного ключа после удаления строки
- 13. MySQL: проверяет наличие новых записей по значениям столбца auto_increment?
- 14. Как сделать идентификатор auto_increment с того места, где он был последним после удаления записи?
- 15. MySQL Query для удаления записей
- 16. Использование записей SqlDataReader после удаления
- 17. MySQL auto_increment
- 18. Auto_increment временных пробелов в MySQL?
- 19. MySQL: Странно AUTO_INCREMENT
- 20. Вопрос AUTO_INCREMENT для mysql
- 21. Скопированный AUTO_INCREMENT в MySQL?
- 22. mysql auto_increment by 5?
- 23. Как оптимизировать таблицу после удаления многих записей
- 24. Как перезагрузить dataTable после удаления записей/данных?
- 25. CodeIgniter сортировать идентификатор после удаления
- 26. Как освободить вертикальное пространство после удаления записей
- 27. Как изменить идентификатор формы после удаления динамически?
- 28. Обновление нескольких записей в MySql
- 29. MySQL установить один идентификатор товара в auto_increment макс ID
- 30. сбрасывать идентификатор автоматического инкремента после удаления последней строки
поэтому записи из исходной таблицы удаляются после их смещения? –
Не надо. Этот вопрос задают, наверное, каждый день здесь. Ответ: «Не делай этого». В качестве альтернативы вы * можете * создать новую таблицу с новым PK, который автоматически увеличивает и переносит все остальные записи в эту таблицу. Но почему*? Что заставляет вас думать, что первичный ключ * нуждается в * всегда быть совершенно последовательным? (Подсказка: это не так) – David
Вы не должны. Первичные ключи могут быть внешними ключами в другой таблице и также должны быть изменены. Если вы думаете, что вам нужно это сделать, вы делаете что-то неправильно. – AbraCadaver