奇怪的 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!
数据库管理员正在使用复制,但没有告诉我。我从未使用过复制,所以我不知道增量是如何工作的。
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!
数据库管理员正在使用复制,但没有告诉我。我从未使用过复制,所以我不知道增量是如何工作的。