### Exposed 0.56.0 Help

# Working with Sequence

A sequence is a database object that automatically generates integer values in sequential order. It is particularly useful in generating unique identifiers and primary keys.

## Define a sequence

To define a sequence in Exposed, use the `Sequence` class:

val myseq = Sequence("my_sequence") // my_sequence is the sequence name.

Several parameters can be specified to control the properties of the sequence:

private val myseq = Sequence( name = "my_sequence", startWith = 4, incrementBy = 2, minValue = 1, maxValue = 10, cycle = true, cache = 20 )

## Create a sequence

To create a sequence, use the `createSequence()` method provided by `SchemaUtils`:

SchemaUtils.createSequence(myseq)

## Drop a sequence

To drop a sequence, use the `dropSequence()` method provided by `SchemaUtils`:

SchemaUtils.dropSequence(myseq)

## Access the next value

You can access the next value in a sequence by using the `nextIntVal()` function:

val nextVal = myseq.nextIntVal() val id = StarWarsFilms.insertAndGetId { it[id] = nextVal it[name] = "The Last Jedi" it[sequelId] = 8 it[director] = "Rian Johnson" }
val firstValue = StarWarsFilms.select(nextVal).single()[nextVal]
Last modified: 30 October 2024