本文已参与【新人创作礼】活动,一起开启掘金创作之路。
目录
一、是什么
自增长列,可以不用手动的插入值,系统提供默认的序列值。
特点:
- 标识列必须和主键搭配吗?不一定,但要求是一个key
- 一个表至多一个标识列!
- 标识列的类型只能是数值型
- 标识列可以通过 SET auto_increment_increment=3;设置步长
- 可以通过手动插入值,设置起始值
二、案例
CREATE TABLE tab_identity( id INT, num INT UNIQUE AUTO_INCREMENT );
插入值
INSERT INTO tab_identity(id,num) VALUES(1,10); INSERT INTO tab_identity(id) VALUES(2); INSERT INTO tab_identity(id) VALUES(3);
编辑
改变步长
SET auto_increment_increment=3; SHOW VARIABLES LIKE '%auto_increment%';
编辑
再次插入值
INSERT INTO tab_identity(id) VALUES(4); INSERT INTO tab_identity(id) VALUES(5);
编辑
修改表时设置标识列
ALTER TABLE tab_identity MODIFY COLUMN id INT PRIMARY KEY AUTO_INCREMENT;
修改表时删除标识列
ALTER TABLE tab_identity MODIFY COLUMN id INT PRIMARY KEY;
三、delete和truncate区别
delete删除表数据时,标识数不变,truncate删除表数据时,标识数重置
delete场景:
INSERT INTO tab_identity(id) VALUES(1); INSERT INTO tab_identity(id) VALUES(2); INSERT INTO tab_identity(id) VALUES(3); INSERT INTO tab_identity(id) VALUES(4);
编辑
DELETE from tab_identity;
INSERT INTO tab_identity(id) VALUES(1); INSERT INTO tab_identity(id) VALUES(2); INSERT INTO tab_identity(id) VALUES(3); INSERT INTO tab_identity(id) VALUES(4);
编辑
truncate场景
INSERT INTO tab_identity(id) VALUES(1); INSERT INTO tab_identity(id) VALUES(2); INSERT INTO tab_identity(id) VALUES(3); INSERT INTO tab_identity(id) VALUES(4);
编辑
DELETE from tab_identity;
INSERT INTO tab_identity(id) VALUES(1); INSERT INTO tab_identity(id) VALUES(2); INSERT INTO tab_identity(id) VALUES(3); INSERT INTO tab_identity(id) VALUES(4);
编辑