MySQL标识列

72 阅读1分钟

​ 本文已参与【新人创作礼】活动,一起开启掘金创作之路。

目录

一、是什么

特点:

二、案例

 三、delete和truncate区别

delete场景:

 truncate场景 


一、是什么

自增长列,可以不用手动的插入值,系统提供默认的序列值。

特点:

  1. 标识列必须和主键搭配吗?不一定,但要求是一个key
  2. 一个表至多一个标识列!
  3. 标识列的类型只能是数值型
  4. 标识列可以通过 SET auto_increment_increment=3;设置步长
  5. 可以通过手动插入值,设置起始值

二、案例

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);

​编辑