シーケンス関数

TiDB のシーケンス関数は、 CREATE SEQUENCEステートメントを使用して作成されたシーケンス オブジェクトの値を返すか設定するために使用されます。

関数名説明
NEXTVAL()シーケンスの次の値を返します。
NEXT VALUE FORシーケンスの次の値を返します ( NEXTVAL()のエイリアス)。
SETVAL()シーケンスの現在の値を設定します。
LASTVAL()現在のセッションでシーケンスによって生成された最後の値を返します。

NEXTVAL()

NEXTVAL()関数はシーケンスの次の値を返します。

例:

s1という名前のシーケンスを作成します。

CREATE SEQUENCE s1;

s1から次の値を取得します。

SELECT NEXTVAL(s1);

出力は次のようになります。

+-------------+ | NEXTVAL(s1) | +-------------+ | 1 | +-------------+ 1 row in set (0.00 sec)

NEXT VALUE FOR

NEXT VALUE FOR関数はNEXTVAL()の別名です。

例:

NEXTVAL()使用してs1から次の値を取得します。

SELECT NEXTVAL(s1);

出力は次のようになります。

+-------------+ | NEXTVAL(s1) | +-------------+ | 2 | +-------------+ 1 row in set (0.00 sec)

NEXT VALUE FOR使用してs1から次の値を取得します。

SELECT NEXT VALUE FOR s1;

出力は次のようになります。

+-------------------+ | NEXT VALUE FOR s1 | +-------------------+ | 3 | +-------------------+ 1 row in set (0.00 sec)

SETVAL()

SETVAL(n)関数は、シーケンスの現在の値を設定します。

例:

s1から次の値を取得します。

SELECT NEXTVAL(s1);

出力は次のようになります。

+-------------+ | NEXTVAL(s1) | +-------------+ | 4 | +-------------+ 1 row in set (0.00 sec)

現在の値s110に設定します。

SELECT SETVAL(s1, 10);

出力は次のようになります。

+----------------+ | SETVAL(s1, 10) | +----------------+ | 10 | +----------------+ 1 row in set (0.00 sec)

10に設定した後、次の値を確認します。

SELECT NEXTVAL(s1);

出力は次のようになります。

+-------------+ | NEXTVAL(s1) | +-------------+ | 11 | +-------------+ 1 row in set (0.00 sec)

LASTVAL()

LASTVAL()関数は、現在のセッションでシーケンスによって生成された最後の値を返します。

例:

現在のセッションでs1によって生成された最後の値を取得します。

SELECT LASTVAL(s1);

出力は次のようになります。

+-------------+ | LASTVAL(s1) | +-------------+ | 11 | +-------------+ 1 row in set (0.00 sec)

MySQL 互換性

MySQL は、 ISO/IEC 9075-2で定義されているシーケンスを作成および操作するための関数とステートメントをサポートしていません。

このページは役に立ちましたか?