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

mysqlmysqli database

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

首先,使用 CREATE table 创建一个表。该查询如下 −

mysql> CREATE table SequenceDemo
-> (
-> SequenceId int auto_increment,
-> primary key(SequenceId)
-> );
Query OK, 0 rows affected (1.22 sec)

创建表后,可以使用插入命令插入记录,如下所示 −

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.19 sec)

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.14 sec)

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.10 sec)

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.12 sec)

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.09 sec)

插入记录后,可以借助 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;
Query OK, 0 rows impacted (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0

之后,从表中的值 500 插入记录。如下所示−

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.15 sec)

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.15 sec)

mysql> INSERT into SequenceDemo values();
Query OK, 1 row affected (0.05 sec)

可以使用以下 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。


相关文章