MariaDB - 序列

在版本10.0.3中,MariaDB引入了称为序列的存储引擎.它的ad hoc为操作生成一个整数序列,然后终止.该序列包含降序或升序的正整数,并使用起始,结束和增量值.

它不允许在多个查询中使用,仅在其原始查询中使用,因为它的虚拟(不写入磁盘)性质.但是,序列表可以通过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;

  • 构建日期序列,以便在预订系统等应用程序中使用.

  • 构建时间序列.