标识列(自增长列)
含义:系统提供默认的系列值
特点:标识列不一定是主键,但必须是一个key
1.创建表时设置标识列
2.一个表最多只能有一个标识列
3.标识列的类型只能是数值型
4.标识列
设置起始值
SET auto_increment_offset=4;
设置步长
SET auto_increment_increment=3;
一、创建表时设置标识列
DROP TABLE IF EXISTS tab_identity;
CREATE TABLE tab_identity(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);
TRUNCATE TABLE tab_identity;
INSERT INTO tab_identity VALUES(NULL,‘john’);
INSERT INTO tab_identity(NAME) VALUES(‘lucy’);
SHOW VARIABLES LIKE ‘%AUTO_INCREMENT%’;
SET auto_increment_offset=4;
SET auto_increment_increment=3;
二、修改表时设置标识列
ALTER TABLE tab_identity MODIFY COLUMN id INT PRIMARY KEY AUTO_INCREMENT;
三、修改表时删除标识列
ALTER TABLE tab_identity MODIFY COLUMN id INT ;
四、获取自增id
1.SELECT MAX(id) FROM tablename
2.SELECT LAST_INSERT_ID() 函数
LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。
3.select @@IDENTITY;
@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。
使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。
4.SHOW TABLE STATUS;
得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.