Sign InTry Free

Sequence Functions

Sequence functions in TiDB are used to return or set values of sequence objects created using the CREATE SEQUENCE statement.

Function nameDescription
NEXTVAL()Returns the next value of a sequence.
NEXT VALUE FORReturns the next value of a sequence (alias for NEXTVAL()).
SETVAL()Sets the current value of a sequence.
LASTVAL()Returns the last value generated by a sequence in the current session.

NEXTVAL()

The NEXTVAL() function returns the next value of a sequence.

Example:

Create a sequence named s1:

CREATE SEQUENCE s1;

Get the next value from s1:

SELECT NEXTVAL(s1);

The output is as follows:

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

NEXT VALUE FOR

The NEXT VALUE FOR function is an alias for NEXTVAL().

Example:

Get the next value from s1 using NEXTVAL():

SELECT NEXTVAL(s1);

The output is as follows:

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

Get the next value from s1 using NEXT VALUE FOR:

SELECT NEXT VALUE FOR s1;

The output is as follows:

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

SETVAL()

The SETVAL(n) function sets the current value of a sequence.

Example:

Get the next value from s1:

SELECT NEXTVAL(s1);

The output is as follows:

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

Set the current value of s1 to 10:

SELECT SETVAL(s1, 10);

The output is as follows:

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

Verify the next value after setting it to 10:

SELECT NEXTVAL(s1);

The output is as follows:

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

LASTVAL()

The LASTVAL() function returns the last value generated by a sequence in the current session.

Example:

Get the last value generated by s1 in the current session:

SELECT LASTVAL(s1);

The output is as follows:

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

MySQL compatibility

MySQL does not support the functions and statements for creating and manipulating sequences as defined in ISO/IEC 9075-2.

Was this page helpful?

Download PDFRequest docs changesAsk questions on DiscordEdit this page
Playground
One-stop & interactive experience of TiDB's capabilities WITHOUT registration.
Products
TiDB
TiDB Dedicated
TiDB Serverless
Pricing
Get Demo
Get Started
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.