2010-12-30 3 views
10

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

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

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

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

Спасибо!

+2

Ссылка: http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html –

+0

Спасибо! - Значит, мне не нужно ничего делать. Он просто добавит число всякий раз, когда добавляется новая строка? :) –

+0

Я бы сделал это сообщество для новичков здесь. – t0mgs

ответ

15

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

Да, именно так работает auto_increment.

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

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

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

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

mySQL Reference

+0

Спасибо! - Будет принимать в 9 минут. :) –

+1

4часа, 59 минут поздно, но я все еще принимаю lol. : P –

+3

Значения 'AUTO_INCREMENT' не обязательно уникальны: http://sqlfiddle.com/#!2/85e93/1 – MichaelRushton

0

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

1

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

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

4

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

1

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

  • при ВСТАВИТЬ - ING, используйте NULL или пропустить столбец

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

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

Ta