InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同相关的知识,希望对你有一定的参考价值。
1. InnoDB引擎的auto_increment字段必须是索引。如果是组合索引,必须为组合索引的第一列。
create table autoincrement_demo_inno( id1 int not null auto_increment, id2 int not null, name varchar(10), index(id1, id2) ) engine=InnoDB
此处必须是index(id1, id2),如果id1不放在第一位则会出错。只要插入新列auto_increment字段就会自增。
从上面可以看出,插入多少列id1就自增多少。
2. MyISAM引擎的auto_increment字段也必须是索引,但如果是组合索引,可以不是组合索引的第一列。
create table autoincrement_demo_myisam( id1 int not null auto_increment, id2 int not null, name varchar(10), index(id2, id1) ) engine=MyISAM
此处如果跟上面一样写成index(id1, id2),auto_increment的效果就跟上面一样。如果把id2放在前面,auto_increment字段的自增会在id2列内容相同的情况下进行。
从上面可以看出,id1的自增在id2相同的情况下才会进行。如果是index有多列,则看排在auto_increment字段前的字段是否相同进行自增。
本文出自 “銅鑼衛門” 博客,请务必保留此出处http://jaeger.blog.51cto.com/11064196/1748809
以上是关于InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同的主要内容,如果未能解决你的问题,请参考以下文章
面试常问之——Mysql引擎中MyISAM和InnoDB的区别有哪些?