序列是在一组整数1, 2, 3中生成的顺序,即……序列中经常使用的数据库,因为许多应用程序在表的每一行中都需要一个唯一的值和序列,这提供了一种生成的简单方法。

使用自动递增列:

在MySQL中使用一个序列的最简单的方法是定义一个auto_increment柱,和其余的是留给MySQL处理。

例子:

请尝试下面的示例,这将在创建表之后创建,它不会成为该表中多行中所需的记录ID,因为它是由MySQL自动递增的。


创建表昆虫
(->
int unsigned不空auto_increment -> ID,
-主键(id),
名字,varchar(30)不为空,昆虫#型
日期不为空,数据收集,#
起源,varchar(30)不为空,收集#
);
查询OK,0行受影响(0.02秒)
插入昆虫(ID、名称、日期、来源)值
(null,'housefly ','2001-09-10 ',and'kitchen),
(null,'millipede ','2001-09-10 ',and'driveway),
(null,'grasshopper ','2001-09-10 ','front,院子里的);
查询OK,3行受影响(0.02秒)
记录:3个重复:0个警告:0
从昆虫顺序按ID选择*;
+ -- + + + + ------------- ------------ ------------
名称日期| | | |起源|
+ -- + + + + ------------- ------------ ------------
| 1 |家蝇| 2001-09-10 |厨房|
| 2 |千足虫| 2001-09-10 |车道|
| 3 |蚱蜢2001-09-10前院| | |
+ -- + + + + ------------- ------------ ------------
3行(0秒)




得到auto_increment价值:

last_insert_id()是一个功能的SQL,可以用在任何客户了解发出的SQL语句。否则,Perl和PHH脚本检索最后自动记录附加值提供了一个独特的特征。

Perl示例:

使用mysql_insertid属性得到auto_increment值查询生成的。这个属性是通过一个数据库处理或语句句柄访问,这取决于如何发出查询。下面的例子参考,通过数据库句柄:


在昆虫(名称,日期,来源)中插入()
值('moth ','2001-09-14 ','windowsill '));
我为SEQ = $胸径-> { mysql_insertid };




PHP实例:

将生成一个auto_increment值查询后,所获取的值称mysql_insert_id():


mysql_query(插入昆虫(名称、日期、来源)
值('moth ','2001-09-14 ','windowsill )
SEQ = mysql_insert_id美元(美元conn_id);




按现有顺序:

可以看到,当一个记录从表中删除所有记录被记录被删除。这可以通过使用一个简单的技术,但它应该非常小心,如果表与其他表。

如果确定要重新序列auto_increment柱的必然途径,这是从表中删除的列,然后再添加它。下面的例子说明了如何使用这种技术重新编号ID值的bug:


表昆虫滴ID;
表虫
添加ID int unsigned不空> auto_increment第一,
添加主键(ID)>;




起始序列在一个序列中的特殊值:

默认情况下,MySQL将启动订单1,但您可以在创建表时指定其他数字。在下面的示例中,MySQL将从100开始。


创建表昆虫
(->
ID int符号不空auto_increment -> = 100,
-主键(id),
名字,varchar(30)不为空,昆虫#型
日期不为空,数据收集,#
起源,varchar(30)不为空,收集#
);




或者您可以创建一个表,然后设置初始序列值更改表。


MySQL >修改表auto_increment = 100;