• 技术文章 >数据库 >mysql教程

    mysql怎么给字段增加自增属性

    青灯夜游青灯夜游2021-12-02 10:45:57原创2923

    在mysql中,可以通过给字段添加“AUTO_INCREMENT”属性来给字段增加自增属性,语法“alter table 表名 add column 字段名 数据类型 AUTO_INCREMENT;”。

    本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

    通过给字段添加 AUTO_INCREMENT 属性来实现字段自增长。语法格式如下:

    字段名 数据类型 AUTO_INCREMENT

    默认情况下,AUTO_INCREMENT 的初始值是 1,每新增一条记录,字段值自动加 1。

    自增字段一般用于主键中。

    当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。

    实例:

    已有的mysql数据表,希望增加一个自增的字段,并设置新数据的初始值。

    测试表

    CREATE TABLE `t_abc` (
      `name` varchar(20) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    测试数据:

    INSERT INTO `t_abc` (`name`)
    VALUES
    	('mike'),
    	('tom'),
    	('jack');

    添加自增字段并设置新数据的起始值

    /*增加一个自增主键字段,分两步操作*/
    
    /*首先增加自增字段*/
    alter table t_abc add column id int auto_increment primary key;
    /*执行完上面这一条,字段增加,但值为空*/
    
    /*执行这一条,它会自动为已存在的数据的自增字段赋初值,从1开始,同时将后续新增的数据从100开始*/
    alter table t_abc auto_increment=100;

    修改已有数据初始值

    /*如果希望所有的数据都从10001 开始,我们可以这么做*/
    
    alter table t_abc add column id int auto_increment primary key;
    
    /*这里没有指定任何数值,执行完后只为自增字段赋从1开始的初始值,其实隐含的设置当前表自增字段从1开始*/
    alter table t_abc auto_increment;
    
    /*将所有数据增加10000*/
    update t_abc set id=id+10000;
    
    /* 前面的100 我们是任意指定的,现在我们应该指定数据库中的maxId+1作为下一个数据的起始值*/
    set @maxId=1;
    select max(id) into @maxId from t_abc; /*表中有3条数据,那么maxId 现在是10003*/
    select @maxId+1 from dual; /* 10004 */
    
    alter table t_abc auto_increment=10004; /*这里不能直接引用变量,因此手动挪移过来*/

    验证一下

    insert into t_abc(name) values('Marry');
    select * from t_abc order by id desc;

    【相关推荐:mysql视频教程

    以上就是mysql怎么给字段增加自增属性的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql 自增字段
    上一篇:mysql与sql的区别是什么 下一篇:mysql是什么数据库
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• mysql小数用什么类型• mysql怎么修改字段注释• mysql怎么查询表结构• mysql怎么进行索引修改• mysql怎么查询字段值• mysql中and是什么意思
    1/1

    PHP中文网