У меня есть таблица с идентификатором, этот идентификатор является автоматическим приращением и первичным ключом, первый раз, когда я вставил в эту таблицу, идентификатор начинается с 0, но после того, как я удалю все значения из этой таблицы и снова вставил в нее, идентификатор не начинается с 0, но начинается с последнего значения, которое было у ID, что происходит неправильно? может ли я reset значение 0?
Искажение идентификатора mysql ID не начинается с 0
Ответ 1
Вы можете либо обрезать таблицу, используя
TRUNCATE `table`
Truncate будет удалять все данные в таблице. Обратите внимание, что использование TRUNCATE
также не запускает никаких триггеров DELETE, таких как DELETE
.
Или вы можете reset подсчитать, используя
ALTER TABLE `table` AUTO_INCREMENT = 1
Однако это ожидаемое поведение. Не делайте последнего, если таблица действительно пуста.
Ответ 2
Чтобы вставить первичный ключ со значением 0, выполните сначала следующий запрос:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
Ответ 3
Удаление всех элементов таблицы не влияет на первичный ключ. Первичный ключ будет по-прежнему автоинкрементным из своего последнего значения.
Если вы хотите reset первичный ключ, вы можете попытаться обрезать таблицу:
TRUNCATE TABLE yourtable;
Это очищает все элементы из вашей таблицы. Независимо от того, сбрасывает ли он первичный ключ, зависит от вашей базы данных. С Mysql он должен работать, поскольку Mysql удаляет и воссоздает таблицу в TRUNCATE.
Ответ 4
Вы должны использовать инструкцию TRUNCATE для перезапуска auto_increment из 1. Это нормальное поведение, чтобы избежать торможения.