【问题标题】:mySQL auto increment increasing by 10 (ClearDB & Node)mySQL 自动递增 10 (ClearDB & Node)
【发布时间】:2020-09-12 17:40:47
【问题描述】:

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

知道为什么会这样吗?

谢谢!

【问题讨论】:

    标签: mysql node.js cleardb


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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


      这是上面链接中的解释。

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

      【讨论】:

      • 这看起来是对这个问题的一个很好的回答(谢谢!),但你能edit 并在你的回答中包含来自网站的相关信息吗?这样,所有信息都会保存在这里,以防那里的链接或内容发生变化。
      • @whrrgarbl 谢谢,我做到了。 :)
      【解决方案3】:

      我遇到了同样的问题。经过一番挖掘,我发现我可以更改auto_increment

      首先检查它是什么值

      SELECT @@auto_increment_increment
      

      那就改吧

      SET @@auto_increment_increment=1;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-12
        • 2016-02-05
        • 1970-01-01
        • 1970-01-01
        • 2016-08-11
        • 2014-10-01
        相关资源
        最近更新 更多