如何在MySQL中创建和使用序列?

要在MySQL中创建序列,可以在列上使用auto_increment。它从值1开始,并在插入时为每个记录增加1。

首先,借助CREATE表创建一个表。该查询如下-

mysql> CREATE table SequenceDemo
-> (
-> SequenceId int auto_increment,
-> primary key(SequenceId)
-> );

创建表后,可以在插入命令的帮助下插入记录,如下所示:

mysql> INSERT into SequenceDemo values();

mysql> INSERT into SequenceDemo values();

mysql> INSERT into SequenceDemo values();

mysql> INSERT into SequenceDemo values();

mysql> INSERT into SequenceDemo values();

插入记录后,可以在select语句的帮助下显示它们,如下所示:

mysql> SELECT * from SequenceDemo;

以下是获得的输出-

+------------+
| SequenceId |
+------------+
| 1          |
| 2          |
| 3          |
| 4          |
| 5          |
+------------+
5 rows in set (0.00 sec)

可以在alter命令的帮助下设置序列,其语法如下-

alter table yourTableName auto_increment=Somevalue;

现在,在下面的查询中使用上面的语法来设置序列值,如下所示:

mysql> alter table SequenceDemo auto_increment = 500;
Records: 0 Duplicates: 0 Warnings: 0

之后,将记录从表中的值500插入。这在下面给出-

mysql> INSERT into SequenceDemo values();

mysql> INSERT into SequenceDemo values();

mysql> INSERT into SequenceDemo values();

可以使用select语句显示所有记录,如下所示:

mysql> SELECT * from SequenceDemo;

输出如下

+------------+
| SequenceId |
+------------+
| 1          |
| 2          |
| 3          |
| 4          |
| 5          |
| 500        |
| 501        |
| 502        |
+------------+
8 rows in set (0.00 sec)

从上面的输出中可以看到,在5条记录之后,序列ID从500开始并以1递增。