看后台数据表结构时发现一个从来没有见过的设置
auto_increment=任意数字的值
比如表结构是:
create table cj(
nid
varchar(10),
cid
varchar(10)
)ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40;
这个AUTOINCREMENT=40在每张表里都有不同的值
发现他们有=1的,有=2的,也有=20的,
不同的表它的值也不完全一样,这个值是做什么用的?
那些情况下会考虑在autoincrement后面设定值呢?
数值型自增 unique 标志。也就是自我插入型标识唯一record(区别于其它必须自己生成unique 的 唯一主键列)什么情况下考虑:当你不想它的id从1开始自增就可以设定。其实表中有数据,有没有都无所谓...,因为是服务器session内有效。 这个值只在两种情况下设置:
1.建表:建表修改起始值,完成后这个值就会保存在内存中,每次重启mysql服务器,innodb都要自己去查询这个值,重新计算的
2.alter:使用alter可以临时改变内存中的auto_increment值,但重启mysql服务器,innodb都会自己重新计算.
3.这个值只保存在内存中,每次重启mysql相当于以下操作:
select MAX(id) as max_id from table
set auto_increment = max_id+1
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。