我有下面的sql代码来创建一个表
CREATE TABLE db.object (
`objid` bigint(20) NOT NULL AUTO_INCREMENT,
`object_type` varchar(32) NOT NULL,
PRIMARY KEY (`objid`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
然而,objid中的值是1,2,3…(insert语句没有添加id)
不应该
AUTO_INCREMENT=2
使objid从2开始而不是从1开始 最佳答案
使用NONDB表,当打开表时,AUTO_INCREMENT
值将重置为最大值(加1)。自动增量值只存在于内存中,不存在于磁盘上。
例如,当mysql实例关闭然后重新启动,并且对表进行引用时,将发生表打开。
一张桌子也可以在其他时间关闭。例如,当超过open_table_cache
时(即当打开大量其他表时),mysql将关闭一些打开的表,以便在缓存中为新打开的表腾出空间。
我相信这种行为在mysql参考手册中有所记录。