自动递增
通过AUTO_INCREMENT属性为新行产生唯一的标识;
AUTO_INCREMENT是数据列的属性,只适用于整数类型数据列;
设置AUTO_INCREMENT属性的数据列应该是正数序列,所以把数据列声明为UNSIGNED;
AUTO_INCREMENT的数据列必须有唯一索引;
AUTO_INCREMENT的数据列必须具备NOT NULL属性;
AUTO_INCREMENT值开始是1,每次递增1;
如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,将自动生成下一序列编号;
使用LAST_INSERT_ID()函数来查询最新的自动递增值;
为自动递增列明确赋值
插入记录时,如果为AUTO_INCREMENT数据列明确指定数值,则会出现两种情况:
如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;
如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号;
-- 自动递增
CREATE TABLE t9(
id SMALLINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
age TINYINT UNSIGNED NOT NULL
);
DESC t9;
INSERT t9(id,username,age) VALUES(NULL,'Tom',26);
INSERT t9(id,username,age) VALUES(10,'Rose',17);
INSERT t9(username,age) VALUES('Frank',19);
SELECT id,username FROM t9;
SELECT LAST_INSERT_ID();