2012-01-16 2 views
0

Предположим, у меня есть таблица MySQL, а таблица имеет строку с id и имеет auto_incremented. Скажем, через MySQL-запрос и PHP, я добавляю строку. Первая строка имеет id из 1. Затем я вручную добавляю второй ряд (через phpmyadmin) с id2. Если я сделаю третью вставку MySQL через PHP ... что будет id для третьей строки ... 2 или 3?MySQL AUTO_INCREMENT Manual

Вопрос: ... auto_increment Учитывать ручные входы?

+0

Почему бы вам просто не попробовать его в тестовой базе данных? ;-) – stefandoorn

+1

Вы не столкнетесь с конфликтами, поэтому следующий будет 3. Однако вы никогда не должны вручную изменять или изменять значение поля auto_increment. Просто позвольте базе данных справиться с этим. –

+0

@ N.B. Вы уверены, что не столкнетесь с столкновениями? Я протестировал его и получил двойную ключевую ошибку. – Konerak

ответ

2

делает auto_increment учитывает ручные входы?

Да, так оно и есть. Но я надеюсь, что вы действительно не вводите идентификатор вручную, верно? :-) Просто оставляйте это поле отдельно при вставке (вручную или программно), MySQL позаботится об этом для вас.

1

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

  • Поставьте значение, если вы хотите, чтобы решить, значение самостоятельно (например, вы удалили линию, а теперь хочу точно такую ​​же строку в таблице).
  • Положите NULL или оставьте колонку из вставки, чтобы база данных использовала автоинкремент.

Просто подсказка: когда ваше приложение выбирает значения для значения автоинкремента, вы, вероятно, делаете что-то неправильно.