MySQL, последовательность автоинкремента? - PullRequest
0 голосов
/ 10 августа 2011

В столбце базы данных MySQL, который был установлен на AUTO_INCREMENT, могу ли я предположить, что значения всегда будут создаваться последовательно?

Например, если 10 строк вставляются и получают значения 1,2,3, ... 10, а затем 3 удаляется, могу ли я предположить, что следующая вставленная строка получит 11?

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

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Из того, что я понимаю из руководства; да. Каждая таблица имеет свое собственное «следующее значение автоинкремента», которое увеличивается на величину, определенную в auto_increment_increment (http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html#sysvar_auto_increment_increment)), и никогда не сбрасывается автоматически, даже если ее можно сбросить вручную. Но, как сказал @miku, если это возможно, отметка времени будет быть предпочтительным.

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

Я видел auto_increment в основном используется для столбца первичного ключа.Если вы хотите отсортировать элементы, скажем, date_added, вы должны создать дополнительный столбец отметки времени, даты / времени и целого (эпоха).

Таким образом, вы ясно и ясно понимаете свои намерения - также вы можете безопасно переносить, экспортировать и импортировать вашу БД, не беспокоясь о том, как обрабатывается auto_increment.

...