标识列又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值
特点:
- 可以不和主键搭配,但要求是一个key(unique)
- 一个表中至多有1个标识列
- 标识列的类型只能是数值型
- 标识列可以通过 set_increment_increment = 3;设置步长,也可以通过手动插入值,设置初始值
- 用delete清空表会标识列的当前序列,而truncate则不会
一、创建表时设置标识列
create table tab_identity(
id int primary key auto_increment,
name varchar(20)
)
insert into tab_identity values(NULL,'hee')
insert into tab_identity values(NULL,'wee')
使用auto_increment关键字使id自增长,在insert时为了符合insert 语法所以要在id处设置一个NULL。插入时并不会插入NULL,而是自动从1开始增长。不想加NULL的话,可以使用下列语法
insert into tab_identity(NAME) values('qee')
可以设置增长量
使用下列语句可以查看关于auto_increment有关的变量
show variables like '%auto_increment%';
可以看到有两个变量
上面那个是每次增长的量,下面那个是起始值,在mysql里这个起始值是设置不了的
只能设置增长量,可以用set来设置增长量
set auto_increment_increment =5;#每次增长5个
如果想改变初始值,可以在第一次插入的时候,指定起始值
insert into tab_increment values(10,'hhh'); #从10开始
二、修改表时设置标识列
alter table tab_identity modify id int primary key auto_increment
三、修改表时删除标识列
alter table tab_identity modify id int;