MariaDB 序列

2022-08-16 15:34 更新

在版本10.0.3中,MariaDB引入了一種稱為序列的存儲引擎。 其ad hoc為操作生成整數(shù)序列,然后終止。 該序列包含正整數(shù),以降序或升序排列,并使用起始,結(jié)束和遞增值。

它不允許在多個查詢中使用,只能在其原始查詢因為其虛擬(不寫入磁盤)性質(zhì)。 但是,序列表可以通過ALTER命令轉(zhuǎn)換為標準表。 如果刪除轉(zhuǎn)換的表,序列表仍然存在。 序列也不能產(chǎn)生負數(shù)或以最小/最大值旋轉(zhuǎn)。

安裝序列引擎

使用序列需要安裝序列引擎,MariaDB作為插件而不是二進制分發(fā)。 使用以下命令安裝它 -

INSTALL SONAME "ha_sequence";

安裝后,驗證它 -

SHOW ENGINESG

請記住,在引擎安裝后,您不能創(chuàng)建具有使用序列語法的名稱的標準表,但可以創(chuàng)建具有序列語法名稱的臨時表。

創(chuàng)建序列

有兩種方法創(chuàng)建序列 - 

  • 創(chuàng)建表并使用AUTO_INCREMENT屬性將列定義為自動遞增。

  • 使用現(xiàn)有數(shù)據(jù)庫并使用序列SELECT查詢來生成序列。 查詢使用seq_ [FROM] _to_ [TO]或seq_ [FROM] _to_ [TO] _step_STEP語法。

最佳實踐更喜歡使用第二種方法。 查看下面給出的序列創(chuàng)建的示例 -

SELECT * FROM seq_77_to_99;

序列有很多用途 - 

  • 在列中找到缺少的值,以防止操作中的相關(guān)問題 -

SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
   = x.y WHERE x.y IS NULL;
  • 構(gòu)造值的組合 -

SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
  • 查找數(shù)字的倍數(shù) -

SELECT seq FROM seq_3_to_100_step_4;
  • 構(gòu)造用于預訂系統(tǒng)等應用程序的日期序列。
  • 構(gòu)造時間序列。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號