关于MySQL的 auto_increment

  1. 使用auto_increment可以为新的记录生成唯一主键.
    例如,下面的代码,是创建一个animals表,然后插入6条记录.
    <code>
    CREATE TABLE animals (
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    name CHAR(30) NOT NULL,
    PRIMARY KEY (id)
    );
    INSERT INTO animals (name) VALUES
    ('dog'),('cat'),('penguin'),
    ('lax'),('whale'),('ostrich');
    SELECT * FROM animals;
    </code>
    执行select语句之后,得到结果集如下,可以看到MySQL自动为id列分配了数值.
    <code>
    +----+---------+
    | id | name |
    +----+---------+
    | 1 | dog |
    | 2 | cat |
    | 3 | penguin |
    | 4 | lax |
    | 5 | whale |
    | 6 | ostrich |
    +----+---------+
    </code>
    值得注意的是,我们也可以手动为id列赋值,比如,我们新增一条记录,将其id指定为10,那么当再次插入一条不指定id值得记录时,MySQL会自动为其id列分配11(即最大值加1)

  2. alter table table_name auto_increment = 100
    此条语句,是用来指定自增序列从100开始.即,插入新的一条记录,其id自动分配100.
    需要说明的是:
    若表中曾经有过的最大id大于等于100, 新纪录的id将为最大值加1;
    若表中的最大id小于100,新纪录的id将为100.

  3. 举个栗子:
    当前表中最大id为101,你删除了此条记录,接着插入一条记录,新纪录的id为102.
    将102删除,再插入一条记录,其id自动分配为103.
    将103删除,执行语句 alter table table_name auto_increment = 100,插入一条数据,其id将自动分配为101

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • AUTO-INC Locks An AUTO-INC lock is a special table-level ...
    FanDB阅读 6,258评论 0赞 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,246评论 19赞 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,307评论 18赞 399
  • 一. Java基础部分.................................................
    wy_sure阅读 4,115评论 0赞 11
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,186评论 0赞 19

友情链接更多精彩内容