码迷,mamicode.com
首页 > 数据库 > 详细

InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同

时间:2016-03-08 21:49:30      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:innodb myisam auto_increment index

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字段的异同

标签:innodb myisam auto_increment index

原文地址:http://jaeger.blog.51cto.com/11064196/1748809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!