Utilice la sentencia CREATE SEQUENCE para crear una secuencia. Una secuencia es un objeto de base de datos desde el que varios usuarios pueden generar enteros exclusivos.
Después de crear una secuencia, puede acceder a su valor en la sentencia SQL con la sentencia NEXT VALUE FOR (que incrementa la secuencia y devuelve el nuevo valor).
El sistema genera números de secuencia independientemente de si la transacción se confirma o retrotrae. Si dos usuarios incrementan simultáneamente la misma secuencia, los números de secuencia que cada usuario adquiere pueden tener huecos, porque el otro usuario está generando números de secuencia. Sin embargo, ningún usuario puede adquirir nunca el número de secuencia que genera otro usuario.
CREATE SEQUENCE <seq_name>
[ AS <datatype> ]
[ START WITH <start_value> ]
[ INCREMENT BY <increment> ]
[ NO MINVALUE | MINVALUE <minimum_value> ]
[ NO MAXVALUE | MAXVALUE <maximum_value> ]
[ NO CYCLE | CYCLE ];
| Entrada | Descripción |
|---|---|
| <seq_name> | Nombre de la secuencia. |
| <datatype> | Tipo de datos. El valor puede ser un tipo entero exacto como byteint, smallint, integer o bigint. Si no especifica esta opción, el tipo de datos predeterminado es bigint. Para obtener una descripción de los tipos de datos y sus rangos, consulte Tabla 1. |
| START WITH | Valor inicial. Utilice esta cláusula para iniciar una secuencia ascendente en un número mayor que su mínimo o para iniciar una secuencia descendente en un valor menor que su máximo. Para secuencias ascendentes, el valor predeterminado es el valor mínimo de la secuencia. Para secuencias descendentes, el valor predeterminado es el valor máximo de la secuencia. El valor entero debe estar entre el tipo de datos de secuencia minvalue y maxvalue. |
| INCREMENT BY | Valor del incremento. El valor entero puede ser cualquier entero positivo o negativo pero no puede ser cero. La magnitud de este valor debe ser menor que la diferencia de minvalue y maxvalue. Si especifica un valor positivo, crea una secuencia ascendente. Si especifica un valor negativo, crea una secuencia descendente. Si no especifica esta opción, el valor predeterminado es 1. |
| NO MINVALUE | MINVALUE | Valor mínimo de la secuencia. El valor predeterminado es NO MINVALUE,
que equivale a especifivar un valor mínimo de 1. MINVALUE debe ser menor o igual que START WITH y debe ser menor que MAXVALUE. |
| NO MAXVALUE | MAXVALUE | Valor máximo que puede tener la secuencia. El valor predeterminado es NO MAXVALUE, que da como resultado un valor más grande para el tipo de datos especificado. MAXVALUE debe ser igual o mayor que START WITH y debe ser mayor que MINVALUE. Para obtener una descripción de los rangos de tipo de datos, consulte Tabla 1. |
| NO CYCLE | CYCLE | Indica si la secuencia sigue generando valores después de
alcanzar su número máximo (en una secuencia ascendente) o su
valor mínimo (en una secuencia descendente). El valor predeterminado es NO
CYCLE, lo que significa que la secuencia se detiene cuando alcanza su último valor. Si especifica CYCLE, cuando una secuencia ascendente alcanza su valor máximo, utiliza el siguiente valor mínimo. Cuando una secuencia descendente alcanza su valor mínimo, utiliza su siguiente valor máximo. |
| Salida | Descripción |
|---|---|
| CREATE SEQUENCE | El comando se ha ejecutado correctamente. |
Es necesario ser el usuario administrativo o el propietario de la base de datos o del esquema, o la cuenta debe tener el permiso de administración Create Sequence.
CREATE SEQUENCE sequence1 As integer START WITH 11 INCREMENT BY 2
MINVALUE 1 MAXVALUE 100 NO CYCLE;