MariaDB - 序列
在 10.0.3 版本中,MariaDB 引入了一个称为序列的存储引擎。 它特别为操作生成一个整数序列,然后终止。 该序列包含按降序或升序排列的正整数,并使用起始值、结束值和增量值。
由于其虚拟(未写入磁盘)性质,它不允许在多个查询中使用,只能在其原始查询中使用。 但是,可以通过 ALTER 命令将序列表转换为标准表。 如果删除转换表,序列表仍然存在。 序列也不能产生负数或在最小值/最大值处旋转。
安装序列引擎
使用序列需要安装序列引擎,MariaDB 将其作为插件而不是二进制文件分发。 使用以下命令安装它 −
INSTALL SONAME "ha_sequence";
安装完成后,验证一下 −
SHOW ENGINES\G
请记住,在安装引擎后,您无法创建名称使用序列语法的标准表,但您可以创建名称为序列语法的临时表。
创建序列
序列创建有两种方法 −
创建一个表并使用 AUTO_INCREMENT 属性将列定义为自动递增。
使用现有数据库并使用序列 SELECT 查询生成序列。 查询使用 seq_ [FROM] _to_[TO] 或 seq_[FROM]_to_[TO]_step_STEP 语法。
最佳实践倾向于使用第二种方法。 查看下面给出的序列创建示例 −
SELECT * FROM seq_77_to_99;
序列有很多用途 −
定位列中的缺失值以防止操作中出现相关问题 −
SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq = x.y WHERE x.y IS NULL;
构造值组合 −
SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
求一个数的倍数 −
SELECT seq FROM seq_3_to_100_step_4;
- 构建用于预订系统等应用的日期序列。
- 构建一个时间序列。