02-08-列属性(自动增长)

自动增长

自动增长:auto_increment,当给某个字段设置该属性后,该列的数据在没有提供确定数据的时候,系统会根据之前已经存在的数据进行自动增长后,填充数据。

通常自动增长用于逻辑主键

原理

  1. 在系统中有维护一组数据,用来保存当前使用了自动增长属性的字段,记住当前对应的数据值,在给定一个指定的步长
  2. 当用户在进行数据插入的时候,如果没有给定值,系统在原始值上再加上步长变成新的数据
  3. 自动增长的出发:给定属性的字段没有提供值
  4. 自动增长只适用于数值

使用自动增长

基本语法:在字段之后增加一个属性auto_increment

在这里插入图片描述

插入数据:出发自动增长,不能给定具体值

insert into my_auto values(null,'Tom','123456');

insert into my_auto(name,pass) values('Jack','123456');

在这里插入图片描述

修改自动增长

  1. 查看自增长:自增长一旦触发使用之后,会自动的在表选项中增加一个选项(一张表最多只只能拥有一个自增长)

    在这里插入图片描述

  2. 表选项可以通过修改表结构来实现

    alter table my_auto auto_increment=10;
    show create table my_auto;
    insert into my_auto(name,pass) values('Rose','123456');
    select * from my_auto;
    

    在这里插入图片描述

  3. 删除自增长

    删除自增长:就是在字段属性之后不再保留auto_increment,当用户修改自动增长所在字段时,如果没有看到auto_increment属性,系统会自动清除该自增长

    alter table my_auto modify id int;
    

    在这里插入图片描述

初始设置

在系统中有一组变量来维护自增长的初始值和步长

show variables like 'auto_increment%';

在这里插入图片描述

细节问题

  1. 一张表只能有一个自增长:因为设置自增长属性时自增长会上升到表选项中
  2. 如果数据插入中没有触发自增长(给定了数据),那么自增长不会表现
  3. 自增长在修改的时候可以较大,但是不能比当前已有自增长字段的值小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值