如何在 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。