奇怪的Mysql增量

时间:2017-10-23 11:48:04

标签: mysql primary-key auto-increment create-table

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));

我认为我做的事情并不奇怪。

2 个答案:

答案 0 :(得分:5)

这是因为如果我理解你的评论,你已经将auto_increment_increment设置为6。

但请注意,这可能是故意的。通常,这是在主 - 主复制中设置的。一个主设备配置为使用偶数作为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!

答案 1 :(得分:0)

这应该是查询

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;