奇怪的 Mysql 增量

Weird Mysql Increment

Mysql 自动递增 6。我不确定为什么或如何解决这些问题。

 create table new_table(tinyint unsigned primary key auto_increment, 
                        display_name varchar(50));

我也用过

 create table new_table(int unsigned primary key auto_increment, 
                        display_name varchar(50));

我认为我没有做任何奇怪的事情。

这应该是查询

CREATE TABLE `new_table` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `display_name` varchar(50),
  PRIMARY KEY (`id`)
)

还要将自动增量设置为 1 使用

SET GLOBAL auto_increment_increment = 1;

这是因为您将 auto_increment_increment 设置为 6,如果我理解正确的话。

  • 了解更多信息 here

不过请注意,这可能是故意的。通常这是在主-主复制中设置的。一个主机配置为使用偶数作为 auto_increment 值,另一个主机使用奇数。

要将其设置回递增 1 的通常行为,请执行以下操作:

SET GLOBAL auto_increment_increment = 1; /*or the SESSION value, depending on your needs*/
SET GLOBAL auto_increment_offset = 1; /*or SESSION value...*/

另请注意,在 auto_increment 列中存在间隙并不是什么大问题。如果该列溢出,请改用 bigint。 Auto_increment 列也可能因为回滚事务而存在间隙。当您想要对行进行严格的顺序编号时,不要依赖 auto_increment!

数据库管理员正在使用复制,但没有告诉我。我从未使用过复制,所以我不知道增量是如何工作的。