mysql之列属性篇五之 —— 自动增长(auto_increment)
自动增长
自动增长:auto_increment,当给定某个字段该属性之后,该列的数据在没有提供确定数据的时候,系统会根据之前已经存在的数据进行自动增加后,填充数据。
通常自动增长用于逻辑主键。
原理
自动增长的原理:
1、 在系统中有维护一组数据,用来保存当前使用了自动增长属性的字段,记住当前对应的数据值,再给定一个指定的步长
2、 当用户进行数据插入的时候,如果没有给定值,系统在原始值上再加上步长变成新的数据
3、 自动增长的触发:给定属性的字段没有提供值
4、 自动增长只适用于数值
使用自动增长(自动增长的列必须是个key,主键外键唯一键都行,且一张表只有能有一个自增长的字段(列))
基本语法:在字段之后增加一个属性auto_increment
插入数据:触发自动增长,不能给定具体值
修改自动增长
1、 查看自增长:自增长一旦触发使用之后,会自动的在表选项中增加一个选项(一张表最多只能拥有一个自增长)
另外几个表选项前面讲了,还多出了个 auto_increment=2:意思就是下次不向自增长列插入指定数值(如null)的话就插入2
注:可以像前面修改字符集那样修改自增长的值,但是自增长的值必须大于当前自增长列最大值,否则修改无效
2、 表选项可以通过修改表结构来实现
Alter table 表名 auto_increment = 值;
此时我再插入数据,自增长的值本应该为2变为了8
删除自动增长
删除自增长:就是在字段属性之后不再保留auto_increment,当用户修改自增长所在字段时,如果没有看到auto_increment属性,系统会自动清除该自增长
初始设置
在系统中,有一组变量用来维护自增长的初始值和步长
Show variables like ‘auto_increment%’;
第一个1为增量,第二个1为初始值