Если я сброшу автоинкремент в MYSQL ... он ничего не испортит, верно? - PullRequest
0 голосов
/ 18 января 2010

Мои автоинкрементные первичные ключи становятся слишком высокими.Я хотел бы сбросить его.

1, 2, 3, 4, 5, 6.

Если я сброслю его на 0, следующая вставленная строка будет 7, верно?

Как сбросить автоинкремент?

Ответы [ 5 ]

2 голосов
/ 18 января 2010

Я согласен с Лутцем, менять идентификатор автоинкремента не очень хорошая идея.Первичный ключ важен для целостности данных, и даже если у вас нет каких-либо зависимостей от других таблиц, лучше не привыкать возиться с ним.

Если у вас есть открытые идентификаторы (например, на веб-сайте)), которые становятся слишком высокими, введите альтернативный столбец для тех.

Но, чтобы ответить на вопрос:

ALTER TABLE theTableInQuestion AUTO_INCREMENT=1234

См. документы по AUTO_INCREMENT на деталях.

0 голосов
/ 18 января 2010

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

0 голосов
/ 18 января 2010
ALTER TABLE my_table  ENGINE=MYISAM AUTO_INCREMENT=1;
0 голосов
/ 18 января 2010

Определите «слишком высоко», почему вы хотите сбросить его? Если он не приближается к 2 ^ 31-1, не должно быть причин для его сброса. Даже если это произойдет, вам, вероятно, следует просто использовать больший тип данных.

0 голосов
/ 18 января 2010

Поле id с автоинкрементом является суррогатным ключом , значение которого отсутствует . Оно никогда не может быть «слишком высоким» или «слишком низким». Так что не меняй это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...