我在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测试测试
知道为什么会这样吗?
谢谢!
这是ClearDB的策略。这是ClearDB网站上的说明。
使用ClearDB时,不能更改此auto_increment步骤。
这是上面链接的解释。
ClearDB使用循环复制来提供Master-Master MySQL支持。因此,必须配置诸如auto_increment键(或序列)之类的某些东西,以便在所有情况下一个主机不使用与另一个主机相同的键。为此,我们将MySQL配置为跳过某些键,并强制MySQL对每个使用的键使用特定的偏移量。之所以使用10而不是2,是为了将来的发展。