MariaDB 序列
MariaDB 序列
在10.0.3,版中,MariaDB引入了一个名为sequence的存储引擎。它的ad hoc为操作生成整数序列。该序列包含降序或升序的正整数,并使用起始值、结束值和增量值。
它不允许在多查询中使用,只允许在原始查询中使用,因为它具有虚拟(未写入磁盘)特性。但是,序列表可以通过ALTER命令转换为标准表。如果已转换的表被删除,则序列表仍然存在。序列也不能产生负数或以最小/最大值旋转。
安装Sequence引擎
使用序列需要安装sequence引擎,MariaDB将它作为插件而不是二进制分发。使用以下命令安装它
INSTALL SONAME "ha_sequence";
安装后,验证它:
SHOW ENGINES\G
请记住,在引擎安装之后,您不能创建一个使用sequence语法的标准表,但是您可以创建一个使用sequence语法名称的临时表。
创建序列
创建序列有两种方法
创建一个表,并使用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;
构建一个日期序列,用于预订系统等应用中。
构建时间序列。