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;
    
    • 构建用于预订系统等应用程序的日期序列。
    • 构建时间序列。