Вопрос по mysql, auto-increment, database – MySQL ID автоинкремент не начинается с 0

12

у меня есть таблица с идентификатором, этот идентификатор - автоинкремент и первичный ключ, при первом вставке в эту таблицу идентификатор начинается с 0, но после удаления всех значений из этой таблицы и повторной вставки в нее идентификатор не отображается ; t начинается с 0, но начинается с последнего значения, которое имел идентификатор, что происходит не так, пожалуйста? Могу ли я сбросить значение до 0?

Нет ничего плохого Это ожидаемое поведение. Одометр вашего автомобиля начинается с 0 каждый раз, когда вы отправляетесь в поездку? ypercubeᵀᴹ
и что я могу сделать, я вставил более 300 раз в свои таблицы, когда я увидел домашнее задание для учителя, нехорошо показать, что клиенты начинают с 301, верно? LinCR
Если вы сделали вставки из сценария, вы можете удалить таблицу, а затем повторно запустить сценарий. Если бы вставки были ручными, вы бы не хотели вставлять их повторно, не так ли? В любом случае, у вас было 300 временных / тестовых клиентов, которые вы удалили. Если бы я был вашим учителем, это не было бы проблемой. ypercubeᵀᴹ

Ваш Ответ

4   ответа
1

чтобы перезапустить auto_increment с 1. Это нормальное поведение, чтобы избежать торможения.

TRUNCATE TABLE your_table_name
ОБРАТИТЕ ВНИМАНИЕ, что таблица TRUNCATE уничтожит ваш стол ...
не могли бы вы дать мне пример, и спасибо LinCR
пожалуйста, я хочу использовать безопасно LinCR
ты имеешь в виду, что мои базы данных будут удалены? или значения таблиц будут удалены? LinCR
5

сначала выполните следующий запрос:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
16

Вы можете укоротить таблицу, используя

TRUNCATE `table`

Усекать волюdelete all of the data в таблице. Обратите внимание, что с помощьюTRUNCATE также не будет запускать триггеры DELETE, такие какDELETE.

Или вы можете сбросить счет с помощью

ALTER TABLE `table` AUTO_INCREMENT = 1

Это, однако, ожидаемое поведение. Не делайте последнее, если таблица действительно не пуста.

это работает спасибо LinCR
3

ый ключ все равно будет автоматически инкрементен с его последнего значения.

Если вы хотите сбросить первичный ключ, вы можете попробовать обрезать таблицу:

TRUNCATE TABLE yourtable;

Это очищает все элементы из вашей таблицы. Сбрасывает ли он первичный ключ, зависит от вашей базы данных. С Mysql это должно работать, так как Mysql удаляет и воссоздает таблицу в TRUNCATE.

я получил тебя, спасибо LinCR

Похожие вопросы