2016-01-11 122 views
2

我在ClearDB一个简单的表增加:MySQL的自动递增10(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; 

我使用节点插入通过数据插入表:

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测试测试

知道为什么发生这种情况?

谢谢!

回答

0

这似乎是因为AUTO_INCREMENT场
的去除AUTO_INCREMENT=11

2

这是ClearDB的策略。 Here is the explanation from ClearDB's website.

当您使用ClearDB时,您无法更改此auto_increment步骤。


这是从上面的链接的解释。

ClearDB使用循环复制来提供master-master MySQL 的支持。因此,在所有情况下,必须配置某些内容,例如自动增加密钥(或序列号为 的序列),以便一个主机不能使用与另一个主机相同的密钥。我们通过配置MySQL 来跳过某些密钥并强制MySQL使用每个使用的密钥的特定偏移量 来实现此目的。我们使用10而不是2的数值的原因是未来开发中的 。

+0

这看起来像是一个很好的答案(谢谢!),但是你可以在你的答案中包括网站的相关信息吗?这样所有的信息都保存在这里,以防链接或内容发生变化。 – whrrgarbl

+0

@whrrgarbl谢谢,我做到了。 :) – user345