#标识列
/*
又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值
特点:
1、标识列必须和主键搭配吗?不一定,但要求是一个key
2、一个表可以有几个标识列?至多一个!
3、标识列的类型只能是数值型
4、标识列可以通过 SET auto_increment_increment=3;设置步长
可以通过 手动插入值,设置起始值
*/
#一、创建表时设置标识列
DROP TABLE IF EXISTS tab_identity;
CREATE TABLE tab_identity(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(30)
);
TRUNCATE TABLE tab_identity;
SELECT * FROM tab_identity;
INSERT INTO tab_identity VALUES(NULL, 'tom');
INSERT INTO tab_identity(id, `name`) VALUES(NULL, 'jack');
INSERT INTO tab_identity(`name`) VALUES('jerry');
#mysql中的标识列不支持设置起始值,但是支持设置步长
#查看起始值和步长
SHOW VARIABLES LIKE '%AUTO_INCREMENT%'
SHOW VARIABLES LIKE '%auto_increment%';
#设置标识列的步长
SET auto_increment_increment = 3;
#SET @@auto_increment_increment = 5;
#
DESC tab_identity;
#
DROP TABLE IF EXISTS tab_identity2;
CREATE TABLE tab_identity2(
id INT,
`NAME` VARCHAR(30)
);
#二、修改表时设置标识列
ALTER TABLE tab_identity2 MODIFY COLUMN id INT PRIMARY KEY AUTO_INCREMENT;
#三、修改表时删除标识列
ALTER TABLE tab_identity2 MODIFY COLUMN id INT;
/*
MySQL之标识列(自增长列)
含义:可以不用手动插入的值,系统提供默认值。关键字AUTO_INCREMENT
特点:
搭配对象不一定是主键,但是必须是一个key
一个表最多只能有一个自增列
该列类型只能为数值型
通过该SQL查看起始值和步长:SHOW VARIABLES LIKE '%auto_increment%';
可以通过手动插入该值的方法设置起始值,取巧方法,并非真正设置了起始值
通过语句 :SET auto_increment_increment = 数值设置步长
*/