首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL自动增量主键增加10

MySQL自动增量主键增加10
EN

Stack Overflow用户
提问于 2016-03-10 06:25:13
回答 2查看 4.3K关注 0票数 8

在azure上,我创建了一个新的MySQL数据库实例。在这个db中,我使用以下脚本创建了一个表:

代码语言:javascript
复制
CREATE TABLE ROLES(
  ID INTEGER PRIMARY KEY AUTO_INCREMENT,
  ROLE_NAME VARCHAR(30) NOT NULL
);

然后使用以下脚本插入值:

代码语言:javascript
复制
INSERT INTO `beezzy`.`roles` (`ROLE_NAME`) VALUES ('admin');
INSERT INTO `beezzy`.`roles` (`ROLE_NAME`) VALUES ('owner');
INSERT INTO `beezzy`.`roles` (`ROLE_NAME`) VALUES ('consultant');

执行表包含以下行:

为什么DB生成像'11‘和'21’这样的ID?我在本地机器上运行相同的脚本,一切正常。ID是'1','2','3‘

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-10 07:30:04

请运行以下查询。

SELECT @@auto_increment_increment

如果值大于1,则通过以下查询将其设置为1

SET @@auto_increment_increment=1;

注:此更改仅对当前连接可见。

编辑:

为了全局设置它,以便其他连接也可以看到更改,您也需要将其设置为全局和会话。

代码语言:javascript
复制
SET @@GLOBAL.auto_increment_increment = 1;

SET @@SESSION.auto_increment_increment = 1;

所以其他的连接现在可以看到这个变化。

更多:

如果重新启动MySQL服务器,将重置此值。为了使此更改永久化,您需要在[mysqld] secion下在my.cnf [for linux]my.ini [for windows]文件中写入此变量。

代码语言:javascript
复制
[mysqld]
auto-increment-increment = 1
票数 7
EN

Stack Overflow用户

发布于 2016-03-10 07:34:51

您的自动增量可能是10,但是这可能是由设计完成的。Azure使用ClearDB,它使用10的自动增量,原因是:复制。

当我在数据库中使用auto_increment键(或序列)时,它们以不同的偏移量增加10。为什么? ClearDB使用循环复制来提供主主MySQL支持。因此,必须配置某些东西,例如auto_increment键(或序列),以便在所有情况下,一个主服务器不能使用相同的密钥。为此,我们将MySQL配置为跳过某些键,并强制MySQL对所使用的每个键使用特定的偏移量。我们使用10而不是2的原因是为了将来的发展。

不应更改自动增量值。

清查常见问题

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35909120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档