Managing sequence behavior
You can tailor the behavior of sequences to meet the needs of your application. You change the attributes of a sequence when you issue the CREATE SEQUENCE statement to create a new sequence, and when you issue the ALTER SEQUENCE statement for an existing sequence.
Following are some of the attributes of a sequence that you can
specify:
- Data type
- The AS clause of the CREATE SEQUENCE statement specifies the numeric data type of the sequence. The data type determines the possible minimum and maximum values of the sequence. The minimum and maximum values for a data type are listed in SQL and XML limits. You cannot change the data type of a sequence; instead, you must drop the sequence by issuing the DROP SEQUENCE statement and issue a CREATE SEQUENCE statement with the new data type.
- Start value
- The START WITH clause of the CREATE SEQUENCE statement sets the initial value of the sequence. The RESTART WITH clause of the ALTER SEQUENCE statement resets the value of the sequence to a specified value.
- Minimum value
- The MINVALUE clause sets the minimum value of the sequence.
- Maximum value
- The MAXVALUE clause sets the maximum value of the sequence.
- Increment value
- The INCREMENT BY clause sets the value that each NEXT VALUE expression adds to the current value of the sequence. To decrement the value of the sequence, specify a negative value.
- Sequence cycling
- The CYCLE clause causes the value of a sequence that reaches its
maximum or minimum value to generate its respective minimum value
or maximum value on the following NEXT VALUE expression.Note: CYCLE should only be used if unique numbers are not required or if it can be guaranteed that older sequence values are not in use anymore once the sequence cycles.
For example, to create a sequence called
id_values
that
starts with a minimum value of 0, has a maximum value of 1000, increments
by 2 with each NEXT VALUE expression, and returns to its minimum value
when the maximum value is reached, issue the following statement:
CREATE SEQUENCE id_values
START WITH 0
INCREMENT BY 2
MAXVALUE 1000
CYCLE