Столбец автоинкремента MySQL перескакивает на 10 - почему?
У меня есть пара таблиц, в которых я создал идентификатор объекта как Int или Bigint, и в обоих случаях они кажутся автоинкрементами на 10 (т.е. первая вставка - это идентификатор объекта 1, второй - идентификатор объекта 11, третий - идентификатор объекта 21 и т.д.). Два вопроса:
-
Зачем это происходит?
-
Это проблема?
Ответы
Ответ 1
Убедитесь, что начальное значение автоинкремента не установлено равным 10.
Вы можете проверить:
SELECT Auto_increment FROM information_schema.tables WHERE table_name='the_table_you_want';
Как уже упоминалось в другом месте, вы можете изменить с помощью системной переменной @@set_auto_increment_increment
SET @@auto_increment_increment=1;
Если вы хотите запустить значения с числом, отличным от одного, вы можете пойти:
ALTER TABLE tbl AUTO_INCREMENT = 100;
Ответ 2
Пожалуйста, не изменяйте auto_increment_increment.
ClearDB делает это специально:
https://www.cleardb.com/developers/help/faq#general_16
Ответ 3
Спасибо @Jim Fiorato за предоставленную ссылку.
Чтобы проверить, сколько увеличивается значение автоматического инкремента, используйте следующий запрос:
SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
| auto_increment_offset | 4 |
+--------------------------+-------+
Ответ 4
Значение прироста автоматического приращения устанавливается в системных переменных MySQL.
Смотрите здесь:
http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#option_mysqld_auto-increment-increment
Ответ 5
Значение autoincriment может скачкообразно сказываться при использовании вставки с атрибутом IGNORE в случае, если запись не была создана
insert IGNORE into my_table set column=1