Mysql中的auto_increment关键字
create table mydatabase.test
(id int not null auto_increment PRIMARY key,
name varchar(20))auto_increment = 3;
#auto_increment = 3是指定一个自增的初始值
insert into mydatabase.test(name) VALUES
('littlelawson'),
('shakespere');
select * from mydatabase.test
drop table mydatabase.test;
二.关键字:identity
1.表示该字段被标识,也就是自增长,在插入数据的时候该字段不用赋值,系统会自己为其赋值。
create table a
(id int identity(1,2),
name varchar(10)
);
报错如下:
mysql> create table a
-> (id int identity(1,2),
-> name varchar(10));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identity(1,2),
name varchar(10))' at line 2
错误原因:MySQL不支持identity关键字。但是mysql具有相同的特性,使用的关键字是auto_increment。
当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况
- 情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;
- 情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。
2.注意
- AUTO_INCREMENT是数据列的一种属性,只适用于整数类型数据列
- AUTO_INCREMENT数据列必须具备NOT NULL属性。
- 可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值
- 可用alter table table_name AUTO_INCREMENT=n命令来重设自增的起始值,默认的起始值是1