MySQL序列的使用--初级

来源:互联网 发布:linux创建属性目录命令 编辑:程序博客网 时间:2024/05/22 03:37

MySQL序列的使用


在使用MySQLS数据库的时候,经常使用序列(Sequence)来处理主键字段,在MySQL中是没有序列的,但是MySQL提供了自增长(increment)来实现类似的目的,但也只是自增,而不能设置步长、开始索引、是否循环等。如果需要两个或两个以上的字段实现自增,那就需要创建序列表了,这里我就简单说明一下increment的使用来实现序列功能。内容如下:


使用AUTO_INCREMENT

create table t_student(id int(6) PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),age int(6),score int(6),enterdate datetime)
insert into t_student(id,name,age,score,enterdate) values(null,'张三',18,98,'2016-9-17');insert into t_student(id,name,age,score,enterdate) values(null,'李四',19,98,'2016-9-17');insert into t_student(id,name,age,score,enterdate) values(null,'王五',20,98,'2011-2-12');insert into t_student(id,name,age,score,enterdate) values(null,'白六',21,98,'2015-12-07');

这里写图片描述

这样我们就实现了序列的使用。


重置序列

如果你删除了数据表中的多条记录,并希望对剩下数据的AUTO_INCREMENT列进行重新排列,那么你可以通过删除自增的列,然后重新添加来实现。 不过该操作要非常小心,如果在删除的同时又有新记录添加,有可能会出现数据混乱。

alter table t_student DROP id;alter table t_studentadd id int(6) auto_increment FIRST,add PRIMARY KEY (id);

设置序列的开始值

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

create table t_student(id int(6) PRIMARY KEY AUTO_INCREMENT=100,name VARCHAR(20),age int(6),score int(6),enterdate datetime)

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

alter table t_student AUTO_INCREMENT = 100;
0 0