📜  MariaDB-序列

📅  最后修改于: 2020-11-27 05:36:38             🧑  作者: Mango


在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;
  • 构造一个日期序列,以用于预订系统之类的应用程序。
  • 构造一个时间序列。