8

我在 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 字段时,我的 id 字段都会增加 10 而不是 1(它从 12 开始:

id 用户名消息

12 测试测试

22测试测试

32测试测试

42测试测试

知道为什么会这样吗?

谢谢!

4

3 回答 3

14

这是 ClearDB 的策略。这是 ClearDB 网站的解释。

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


这是上面链接的解释。

ClearDB 使用循环复制来提供 master-master MySQL 支持。因此,必须配置某些东西,例如 auto_increment 键(或序列),以便在所有情况下一个主控器不使用与另一个主控器相同的键。为此,我们将 MySQL 配置为跳过某些键,并强制 MySQL 为使用的每个键使用特定的偏移量。我们之所以使用 10 而不是 2 的值是为了以后的发展。

于 2016-08-02T14:47:45.240 回答
1

我有同样的问题。经过一番挖掘,我发现我可以改变auto_increment

首先检查它是什么值

SELECT @@auto_increment_increment

然后改变它

SET @@auto_increment_increment=1;
于 2019-05-02T20:48:59.743 回答
0

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

于 2016-01-11T00:40:00.207 回答