Как работает MySQL Auto Increment?

Я просто создавал новую таблицу, используя MySQL Query Browser, и заметил там отметку в Auto Increment Column. Как это работает?

При добавлении в базу данных программно, просто я добавляю номер, а затем база данных автоматически увеличивает этот номер?

Каждый раз, когда новый пользователь регистрируется на моем сайте, я хочу, чтобы их идентификатор клиента (только целочисленный) автоматически увеличивался, поэтому мне не нужно пытаться случайным образом генерировать уникальный номер.

Можно ли это сделать просто?

Спасибо!

Ответ 1

При добавлении в базу данных программно, просто я добавляю номер, а затем база данных автоматически увеличивает этот номер?

Да, работает auto_increment.

  • Значение будет увеличено для каждой новой строки

  • Значение уникально, дубликаты невозможны

  • Если строка удалена, столбец auto_increment этой строки не будет переназначен.

  • Значение auto_increment последней вставленной строки можно получить с помощью функции mySQL LAST_INSERT_ID(), но ее нужно вызвать сразу после запроса вставки в том же соединении с базой данных

mySQL Reference

Ответ 2

Еще 1, Вы также можете вставить свое собственное значение (т.е. Ваше случайное значение).

Ответ 3

Когда вы включаете Auto Increment, идентификатор всегда будет автоматически добавляться всякий раз, когда будет сделана новая запись. Пример:

Если у вас есть 1 запись с идентификатором 1 в вашей таблице, и вы добавляете новую запись, идентификатор будет автоматически равен 2.

Ответ 4

Да. Столбцы Auto_Increment работают, как говорят на жестяне. Советы

  • когда INSERT - INING, используйте NULL или опустите столбец

  • Используйте LAST_INSERT_ID() (или эквиваленты API) для получения последнего сгенерированного значения.

  • по соображениям безопасности и бизнес-логики обычно лучше не использовать ключевое значение для идентификатора клиента. Вместо этого рассмотрите использование хешированных/рандомизированных суррогатных ключей клиента.

Та

Ответ 5

Да, это точная цель AUTO_INCREMENT. Он смотрит на то, что является текущим значением приращения для этой таблицы, и сохраняет это значение плюс 1 для новой строки, которая приходит автоматически. Вы можете опустить это поле из своих операторов INSERT, и MySQL будет обрабатывать его для вас для каждой новой строки, входящей в систему, предоставляя каждой строке свой собственный уникальный идентификатор.