mySQL自增长每次增加10 (ClearDB & Node)

9

我在ClearDB中有一个简单的表:

CREATE TABLE `users` (

`id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`message` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)

) ENGINE=INNODB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

我正在使用Node通过以下方式向表中插入数据:

var post = {username: response.user.name, message: message.text};

           connection.query("INSERT INTO users SET ?", post, function(err, rows, fields) {

                 if (err) {
                       console.log('error: ', err);
                       throw err;
                 }

           });

然而每当我插入我的id字段时,它会增加10而不是1(并且它的起始值是12:
id 用户名 消息
12 测试 测试
22 测试 测试
32 测试 测试
42 测试 测试
有任何想法为什么会发生这种情况吗?
谢谢!
3个回答

15
这是ClearDB的策略。这里是ClearDB网站上的解释。 当使用ClearDB时,您无法更改此auto_increment步骤。
以下是链接中的解释:
ClearDB使用循环复制提供主-主MySQL支持。因此,为了防止一个主机使用与另一个主机相同的密钥,在所有情况下必须配置某些内容,例如auto_increment密钥(或序列)。我们通过配置MySQL跳过某些键并强制MySQL对每个使用的键使用特定偏移量来实现这一点。我们之所以使用10而不是2的原因是为了未来的开发。

这个回答看起来很好(谢谢!),但是你能否[编辑]并在回答中包含网站上的相关信息呢?这样所有的信息都会被保留在这里,以防链接或内容发生更改。 - user812786
@whrrgarbl 谢谢,我已经做了。 :) - Jeff

4

我曾经遇到过同样的问题。经过一番研究,我发现可以更改 auto_increment 的值。

首先检查它目前的值是多少。

SELECT @@auto_increment_increment

那就修改它

SET @@auto_increment_increment=1;

0

这似乎是因为AUTO_INCREMENT字段
删除AUTO_INCREMENT=11


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接