при удалении записи из базы данных mysql - PullRequest
3 голосов
/ 01 августа 2011

Я новичок в сценарии всей базы данных и только учусь.У меня есть база данных mysql, и я использую phpmyadmin для редактирования полей и т. Д. Я создал поле 'id' auto_incremenet, которое установлено в качестве основного.Если я добавлю 5 полей, идентификатор будет «1,2,3,4,5».Если я удаляю все эти поля и добавляю еще 5 полей, почему идентификатор переходит в «6,7,8,9,10»?(вместо того, чтобы возвращаться к 0, так как технически другие поля больше не существуют, поэтому его уникальное право?).Есть ли способ сделать идентификатор последовательно числовым?1,2,3,4,5?

Ответы [ 5 ]

5 голосов
/ 01 августа 2011

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

1 голос
/ 01 августа 2011

Я думаю, что основной причиной такого поведения является эффективность, это означает, что MySQL не нужно отслеживать, какие номера не используются, нужно только знать, какой номер использовался в последний раз.

1 голос
/ 01 августа 2011

Я считаю, что это происходит потому, что при использовании системы реляционных баз данных вы можете «связать» строки с другими строками, обычно по их идентификатору. Если вы начнете использовать идентификаторы повторно, вы можете оказаться в замешательстве.

Вы можете сбросить счетчик auto_increment на любое значение, используя следующий запрос:

ALTER TABLE tableName AUTO_INCREMENT=123

Если вы удаляете все строки в своей таблице, вы можете использовать TRUNCATE, которая также сбрасывает счетчик.

TRUNCATE TABLE tableName
0 голосов
/ 01 августа 2011

Вам нужно будет сбросить автоинкремент, чтобы вы могли перенумеровать значения auto_incremented, подробнее о решениях здесь http://www.dbuggr.com/milly/reset-auto-increment-mysql/.

0 голосов
/ 01 августа 2011

Посмотрите на этот вопрос.Но в основном:

ALTER TABLE mytable AUTO_INCREMENT = 1;

ОБНОВЛЕНИЕ

Как уже упоминалось, игра с автоматически сгенерированными ПК бесконечно причинит вам много головной боли.Или написать набор шаблонного кода для ведения домашнего хозяйства.

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