DDL语言
标识列
又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值
特点:
1.标识列必须和主键搭配吗?
不一定,但要求是一个key(主键、唯一)
2.一个表中可以有多少个标识列?
至多一个
3.标识列的类型只能是数值型
4.标识列可以通过SET auto_increment_increment 设置步长,也可以通过手动插入值设置起始值
一、创建表时设置标识列
DROP TABLE IF EXISTS tab_identity
CREATE TABLE tab_identity(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);
#常规表添加需要不断修改id
INSERT INTO tab_identity VALUES(NULL,'john');#连续执行3次
INSERT INTO tab_identity(NAME) VALUES('lucy')#连续执行2次
SELECT * FROM tab_identity
1.查看步长和起始值
SHOW VARIABLES LIKE '%auto_increment%'
2.设置步长
TRUNCATE TABLE tab_identity
SET auto_increment_increment = 3; #设置步长为3
INSERT INTO tab_identity VALUES(NULL,'john'); #连续执行3次
SELECT * FROM tab_identity
3.设置初始值【mysql不支持对offset的直接修改,可以采用下述方式达成目的】
INSERT INTO tab_identity VALUES(10,'john'); #先执行一次
INSERT INTO tab_identity VALUES(NULL,'john'); #再执行3次
SELECT * FROM tab_identity
4.测试
CREATE TABLE tab_identity(
id INT UNIQUE AUTO_INCREMENT, #不报错
NAME VARCHAR(20)
seat INT UNIQUE AUTO_INCREMENT #报错
);
CREATE TABLE tab_identity(
id INT ,
NAME VARCHAR(20) UNIQUE AUTO_INCREMENT #报错
NAME FLOAT UNIQUE AUTO_INCREMENT #不报错
seat INT
);
二、修改表时设置标识列
ALTER TABLE tab_identity MODIFY COLUMN id INT PRIMARY KEY AUTO_INCREMENT
三、修改表时删除标识列
ALTER TABLE tab_identity MODIFY COLUMN id INT;