mysql:标识列(自增长列)

一.概述

1.含义:可以不用手动插入值,系统提供默认的序列值
2.特点:
1).标识列不一定必须和主键搭配,但要求是一个key(主键、unique、外键)
2).一个表最多有一个标识列
3).标识列的类型只能是数值型(int float double等)
4).标识列可以通过 set auto_increment_increment=XX设置步长;也可以通过手动插入值设置起始值
3.查看自增列的设置情况:
语法:
show variables like ‘auto_increment’;
在这里插入图片描述
auto_increment_increment表示步长
auto_increment_offset表示是否开启自增长,1表示开启

二.创建表时添加自增长列

DROP TABLE IF EXISTS idol_id;
CREATE TABLE idol_id(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL);
INSERT INTO idol_id VALUES(NULL,'wyb');
SELECT * FROM idol_id;

在这里插入图片描述

INSERT INTO idol_id(NAME) VALUES('xz');

在这里插入图片描述

INSERT INTO idol_id VALUES(5,'hjy'); #自己设置值也是可以的
INSERT INTO idol_id VALUES(NULL,'zql');

在这里插入图片描述
我们把步长设置为4,第一个值设置为5:
(步长重新设置之后,必须重新建表才能体现,原来的表,步长依然为1)

SET auto_increment_increment = 4;
DROP TABLE IF EXISTS idol_id;
CREATE TABLE idol_id(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL);
INSERT INTO idol_id VALUES(5,'wyb');
INSERT INTO idol_id(NAME) VALUES('xz');
SELECT * FROM idol_id;

在这里插入图片描述

三.修改表时添加自增长列

DROP TABLE IF EXISTS idol_id;
CREATE TABLE idol_id(
id INT PRIMARY KEY,
NAME VARCHAR(20) NOT NULL);

ALTER TABLE idol_id MODIFY COLUMN id INT AUTO_INCREMENT;#primary key 在创建表的时候就添加了,所以这里不用再写了。如果创建表的时候没有添加primary key(或者foreign key 或者unique)那么在这里就必须先添加了key后才能添加自增长列(就是在auto_increment前面加primary key)

四.修改表时删除自增长列

ALTER TABLE idol_id MODIFY COLUMN id INT;

在这里插入图片描述

发布了43 篇原创文章 · 获赞 1 · 访问量 733

猜你喜欢

转载自blog.csdn.net/weixin_41391619/article/details/105047402