Обнулити ai лічильник в mysql, mysql

Коли створюєш таблицю в mysql, створюєш кілька полів, звичайно перше поле це ID яке заповнюється автоінкрементом, але навіть якщо видалити всі записи, а їх наприклад було 100 то нова перша запис всерівно буде 101, чому так? Через якийсь час все значення адже будуть задіяні і база встане "колом", як з цим боротися? Або як обнулити автоінкремент?

Як видаляєте, через DELETE?
спробуйте так:
TRUNCATE TABLE table_name

To change the value of the AUTO_INCREMENT counter to be used for new rows, do this:
ALTER TABLE t2 AUTO_INCREMENT = value;

> Через якийсь час все значення адже будуть задіяні і база встане "колом".
Якщо Ви будете створювати 1000000 записів щосекунди і тип автоінкрементіруемой осередку BIGINT, то база даних стане "колом" через 292277 років.

2PetSerAl:
The AUTO_INCREMENT counter is reset by TRUNCATE TABLE, regardless of whether there is a foreign key constraint.

2_KUL:
якщо стоїть знаковий інт, то максимальне значення автоінкремента складе 2147483647 (2+ млрд.). Якщо кожен день буде задіяні по 1 млн. Записів, то база встане "колом" майже через 6 років. Але і цього можна уникнути, тобто розширити значення до BIGINT. Хоча це і не потрібно. Якщо проводиться планова очистка таблиці, досить використовувати TRUNCATE. Безпосередньо значення AUTO_INCREMENT, як правило, встановлювати не потрібно.

2 ax64
> 2PetSerAl:
> The AUTO_INCREMENT counter is reset by TRUNCATE TABLE, regardless of whether there is a foreign key constraint.
> All right, man?
А я що говорив щось проти?

краща відповідь SQL> OPTIMIZE TABLE 'myTbl';

При це значення лічильника автоінкремента скинеться до максимального існуючого в базі. Тобто, якщо ви знищите всі записи і виконайте OPTIMIZE TABLE, то значення скинеться і наступний запис буде записана з одиницею в Автоінкрементний поле.
На мій погляд це найпростіше рішення.

Схожі статті