我有几个表,我在其中创建了一个对象ID作为Int或Bigint,在这两种情况下,它们似乎自动递增10(即,第一个插入是对象ID 1,第二个是对象ID 11 ,第三个是对象ID 21等。两个问题:
为什么会这样做?
这是一个问题吗?
答案 0 :(得分:44)
检查自动增量的种子值是否设置为10。
您可以查看:
SELECT Auto_increment FROM information_schema.tables WHERE table_name='the_table_you_want';
如其他地方所述,您可以使用系统变量@@ set_auto_increment_increment
进行更改SET @@auto_increment_increment=1;
如果您想以不同于1的数字开始值:
ALTER TABLE tbl AUTO_INCREMENT = 100;
答案 1 :(得分:41)
请不要更改auto_increment_increment
。 ClearDB是故意这样做的。它在the documentation中解释:
ClearDB使用循环复制来提供master-master MySQL 支持。因此,某些事情,如auto_increment键(或 必须配置序列,以便一个主人不使用 在所有情况下,与另一个相同的密钥。我们通过配置MySQL来实现这一点 跳过某些键,并强制MySQL使用特定的偏移量 对于每个使用的密钥。我们使用10而不是2的原因是 为了未来的发展。
答案 2 :(得分:15)
感谢@Jim Fiorato提供链接。
要检查自动增量值的增量,请使用以下查询:
SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
| auto_increment_offset | 4 |
+--------------------------+-------+
答案 3 :(得分:7)
自动增量增量值在MySQL系统变量中设置。
答案 4 :(得分:1)
自动注释值可以跳转
insert IGNORE into my_table set column=1