MariaDB10.0.3で導入されたsequenceオブジェクト使用方法

MariaDB10.0.3で導入されたsequenceオブジェクト使用方法

バージョン

バージョン
10.3.36-MariaDB

シーケンスストレージエンジン確認

MariaDB10.0.3からシーケンスストレージエンジンが追加されました。

SHOW engines;
Engine Support Comment Transactions XA Savepoints
CSV YES Stores tables as CSV files NO NO NO
MRG_MyISAM YES Collection of identical MyISAM tables NO NO NO
MEMORY YES Hash based, stored in memory, useful for temporary tables NO NO NO
MyISAM YES Non-transactional engine with good performance and small data footprint NO NO NO
SEQUENCE YES Generated tables filled with sequential values YES NO YES
InnoDB DEFAULT Supports transactions, row-level locking, foreign keys and encryption for tables YES YES YES
Aria YES Crash-safe tables with MyISAM heritage NO NO NO
PERFORMANCE_SCHEMA YES Performance Schema NO NO NO

SEQUENCEの行が追加されています。MariaDBのプラグインですのでMySQLにこの機能はありません。

ha_sequence plugin usage in MySQL
Is there any possibility to use the ha_sequence plugin provided by MariaDB in MySQL ( Or does a similar plugin exist for...

シーケンスオブジェクトの使い方

テーブル名を以下のように動的に変更してシーケンスを振ります。

seq_[FROM]_to_[TO]

0から6までの例です。

>SELECT seq FROM seq_0_to_6
0
1
2
3
4
5
6

デフォルトでは1ずつ増えますが以下のように指定することができます。

seq_[FROM]to[TO]step[STEP]

3ずつ増やす例です。

>SELECT seq FROM seq_0_to_9_step_3
0
3
6
9

この仮想表同士をJOINしたり複雑なことをすることも可能です。

MySQLにOracleでいうrowidのような機能がないのでこのような機能が追加されたのかもしれません。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました