MySQL序列是一组整数:1,2,3,…,由于一张数据表只能有一个字段自增长主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。

使用AUTO_INCREMENT
MySQL中最简单使用序列的方法就是使用MySQL AUTO_INCREMENT来定义列。

实例
以下实例创建数据表 hexapod,昆虫表中id无需指定值可实现自动增长。

mysql>CREATE TABLE hexapod
	-> (
	-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
	-> PRIMARY KEY (id)
	-> name VARCHAR (30) NOT NULL,#type of insect
	-> date DATE NULL,#date收集
	-> origin VARCHAR (30) NOT NULL #在哪里收集
);
查询正常,0行受影响(0.02秒)
mysql> INSERT INTO hexapod(id,name,date,origin) VALUES
	-> (NULL,'housefly','2001-09-10','kitchen'),
	-> (NULL,'millipede','2001-09-10','车道')
	-> (NULL,'蚱蜢','2001-09-10','前院');
查询ok,3行受影响(0.02秒)
记录:3个重复:0个警告:0
mysql> SELECT * FROM hexapod ORDER BY id;
+-----+------------------+--------------------+
| id |   名字  |  日期  |  来源  |
| 1  |  家蝇  |  2001-09-10  | 厨房  |
| 2  | 千足虫 | 2001-09-10 | 车道|
| 3  | 蚱蜢  | 2001-09-10 | 前院|
+-----+------------------+--------------------+
3行(0.00秒)

设置序列的开始值
一般情况下序列的开始值为1,但如果 你需要指定一个开始值100,那我们可以通过以下语句来实现:

mysql> CREATE TABLE hexapod
	-> (
	-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
	-> PRIMARY KEY(id),
	-> name VARCHAR (30) NOT NULL,
	-> date DATE NOT NULL,
	-> origin VARCHAR (30) NOT NULL,
) engine = innodb auto_increment = 100 charset = utf8;

或者你也可以在表创建成功后,通过以下语句来实现:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;
 > ALTER TABLE t AUTO_INCREMENT = 100;
01-26 09:25