
数据驱动 成就未来
云和恩墨(北京)信息技术有限公司版权所有,严禁翻印 1 / 7
MySQL 知识 100 问之:
删除行对
MySQL
序列有什么影响呢?
& &&&&&
一.MySQL 序列概述
为了达到标识的目的,许多应用程序需要生成唯一编号,比如:商品编号、交易流水号
等。MySQL 数据库同样能够支持这样的需求场景,AUTO_INCREMENT 就是为 MySQL 实现序列的
方式,它会自动生成序列编号。但是它的使用是有要求的,比如:
Ø 每个表只能有一个列具备 AUTO_INCREMENT 属性,并且为整数型
Ø AUTO_INCREMENT 列不能包含 NULL 值(MySQL 会自动设置为 NOT NULL)
Ø AUTO_INCREMENT 列上必选要有索引,常见为 primary key 和 unique index
备注:由于存储引擎的不同对于序列的定义和使用存在差异,本文以 innodb 引擎作为讲解,具体
差异区别,可参考下篇文章《浅析 MySQL 存储引擎序列属性》
二.场景演示
设置为 AUTO_INCREMENT 属性后,每一次插入数据都会向前增加一位数,但是如果删除
行后,序列会怎么样呢?
mysql> CREATE TABLE animals (
-> id MEDIUMINT NOT NULL AUTO_INCREMENT,
-> name CHAR(30) NOT NULL,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO animals (name) VALUES
-> ('dog'),('cat'),('penguin'),
-> ('lax'),('whale'),('ostrich');
文档被以下合辑收录
评论