11.15 ALTER SEQUENCE
Purpose
Use the ALTER
SEQUENCE
statement to change the increment, minimum and maximum values, cached numbers, and behavior of an existing sequence. This statement affects only future sequence numbers.
See Also:
CREATE SEQUENCE for additional information on sequences
Prerequisites
The sequence must be in your own schema, or you must have the ALTER
object privilege on the sequence, or you must have the ALTER
ANY
SEQUENCE
system privilege.
Syntax
alter_sequence::=
Semantics
The keywords and parameters in this statement serve the same purposes they serve when you create a sequence.
-
To restart the sequence at a different number, you must drop and re-create it.
-
If you change the
INCREMENT
BY
value before the first invocation ofNEXTVAL
, then some sequence numbers will be skipped. Therefore, if you want to retain the originalSTART
WITH
value, you must drop the sequence and re-create it with the originalSTART
WITH
value and the newINCREMENT
BY
value. -
If you alter the sequence by specifying the
KEEP
orNOKEEP
clause between runtime and failover of a request, then the original value ofNEXTVAL
is not retained during replay for Application Continuity for that request. -
Oracle Database performs some validations. For example, a new
MAXVALUE
cannot be imposed that is less than the current sequence number.See Also:
CREATE SEQUENCE for information on creating a sequence and DROP SEQUENCE for information on dropping and re-creating a sequence
Examples
Modifying a Sequence: Examples
This statement sets a new maximum value for the customers_seq
sequence, which was created in "Creating a Sequence: Example":
ALTER SEQUENCE customers_seq MAXVALUE 1500;
This statement turns on CYCLE
and CACHE
for the customers_seq
sequence:
ALTER SEQUENCE customers_seq CYCLE CACHE 5;