Mariadb 简明教程

MariaDB - Sequences

在版本 10.0.3 中,MariaDB 引入了一种名为序列的存储引擎。它的临时解决方案为操作生成一个整数序列,然后终止它。序列包含按降序或升序排列的正整数,并使用起始、结束和增量值。

由于其虚拟(未写入磁盘)性质,它不允许在多个查询中使用,只允许在其原始查询中使用。但是,可以通过 ALTER 命令将序列表转换为标准表。如果删除转换后的表,则序列表仍然存在。序列也不能产生负数或在最小值/最大值处旋转。

Installing the Sequence Engine

使用序列需要安装序列引擎,MariaDB 将其作为插件而不是二进制文件进行分发。使用以下命令安装它 −

INSTALL SONAME "ha_sequence";

安装后,验证它 −

SHOW ENGINES\G

请记住,在安装引擎后,您无法使用序列语法创建名称为标准表的表,但您可以创建带有序列语法名称的临时表。

Creating Sequence

有两种序列创建方法 −

  1. 创建一个表并使用 AUTO_INCREMENT 属性将一列定义为自动增量。

  2. 使用现有数据库并使用一个序列 SELECT 查询生成一个序列。查询使用 seq_ [FROM] to [TO] 或 seq_[FROM] to [TO]_step_STEP 语法。

最佳做法更偏好使用第二种方法。查看下面提供的一个序列创建示例 −

SELECT * FROM seq_77_to_99;

序列有许多用途 −

  1. 在列中找到丢失的值,以防止在操作中出现相关问题 −

SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
   = x.y WHERE x.y IS NULL;
  1. 构造值组合 -

SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
  1. 查找数字倍数 -

SELECT seq FROM seq_3_to_100_step_4;
  1. 构造日期序列以在类似于预订系统的应用程序中使用。

  2. Construct a time sequence.