Oracle crea secuencia de secuencia

202-01-19 Secuencia de creación de aprendizaje de Oracle


Uno, versión de Oracle

Oracle 11.2.0.1.0 - 64 bits

Herramienta SQLPlus

 

Segundo, cual es la secuencia

A través del aprendizaje, aprendí que una secuencia es una especie de objeto de datos de Oracle, que es un conjunto de números de secuencia que aumentan o disminuyen de manera ordenada, cuya función principal es generar la clave primaria o clave única de la tabla de datos. Las secuencias no ocupan espacio de almacenamiento en el disco y son objetos que viven en la memoria.

Crear sintaxis:

CREAR SECUENCIA nombre de secuencia

INCREMENTO EN [NUM1]

EMPEZAR CON [NUM2]

MAXVALUE [NUM3] | [NOMAXVALUE]

MINVALUE [NUM4] | [NOMINVALUE]

NOCYCLE | CICLO

NOCACHE | CACHE [NUM5]

[ORDEN];

 

3. Explicación de palabras clave:

1. INCREMENTO EN NUM1: El tamaño del paso es NUM1. NUM1 puede ser positivo o negativo, pero ambos deben ser enteros. El valor predeterminado es 1 y no puede ser 0 (0 perderá el significado de la secuencia).

Cuando NUM1 es positivo, el valor de secuencia aumenta cada vez más, y cuando es negativo, se reduce.

2. INICIAR CON [NUM2]: Defina el valor inicial o el valor inicial NUM2 de la secuencia. Este es el primer valor de la secuencia. El valor predeterminado es 1.

3. MAXVALUE [NUM3] | [NOMAXVALUE]: Defina el valor máximo NUM3 que puede generar la secuencia. Si no se establece el valor máximo, el valor predeterminado es NOMAXVALUE. El valor máximo de la secuencia creciente se dice que es 10 elevado a 27, el valor máximo de la secuencia decreciente es -1.

4. MINVALUE [NUM4] | [NOMINVALUE]: Defina el valor mínimo NUM4 que puede generar la secuencia. Si no se establece el valor mínimo, el valor predeterminado es NOMINVALUE y el valor mínimo de la secuencia creciente es 1

5. NOCYCLE | [CYCLE]: Defina si se realiza un ciclo cuando el valor generado por la secuencia alcanza el máximo. NOCYCLE significa que no hay ciclo. Si una secuencia tarda mucho en agotarse, puede considerar usar una secuencia de ciclo. El valor inicial del siguiente ciclo se puede ver en el campo last_number en user_sequences.

6. NOCACHE | [CACHE] [NUM5]: Defina si la secuencia usa caché y el tamaño del bloque de caché. El tamaño predeterminado es 20. La conexión se desconecta y la caché se vacía (supongo, jaja).

7. [ORDER]: opción ORDER, define si la secuencia ocurre en orden, el valor predeterminado es NO. No hay diferencia en una base de datos de instancia única, porque la secuencia debe suceder secuencialmente. En un entorno de clúster, si la caché Cache = 20, la instancia 1 toma 1-20 y la almacena en la memoria; cuando la instancia 2 hace referencia a la misma secuencia nuevamente, tomará 21-40 ... así que el valor de secuencia obtenido en múltiples instancias es será diferente. Después de que se defina Order, cada instancia del clúster debe obtener el valor de secuencia en orden.

 

Cuatro, crea un ejemplo:

CREAR SECUENCIA S2

INCREMENTO EN 2 - Paso 2

EMPEZAR CON 1 - valor inicial 1

MAXVALUE 20 - Valor máximo 20

MINVALUE -20 - Valor mínimo -20

NOCYCLE - Sin ciclo

NOCACHE; --No almacenar en caché

 

Cinco,

1. Obtenga el valor de la secuencia actual:

seleccione s2.currval de dual;

2. Obtenga el valor de la siguiente secuencia:

seleccione s2.nextval de dual;

3. Consulta qué secuencias están debajo del usuario:

seleccionar * de user_sequences;

 

6. Una vez creada la secuencia, se puede modificar:

1. alterar el incremento de la secuencia s2 en -2; - modificado a una secuencia decreciente

2. alterar secuencia s2 maxvalue 100; - modificar el valor máximo a 100

3. alterar secuencia s2 caché 30; - modificado como caché, el tamaño del bloque de caché es 30, lo que significa que un caché puede almacenar hasta 30 valores de secuencia en la memoria a la vez

 

7. Resumen de puntos de conocimiento:

1. La secuencia es una llamada compartida y todos los usuarios con permiso de referencia pueden hacer referencia a ella.

2. Cuando se revierte la transacción, los datos agregados, eliminados y modificados en la transacción se pueden revertir, ¡pero la secuencia no se revertirá! ! !

3. En una tabla, el valor del campo de la secuencia creciente puede estar interrumpido y ser discontinuo porque otros objetos se refieren a esta secuencia, incluso si es una referencia a una tabla virtual dual.

4. Cuando se establece NOCACHE, se debe calcular cada secuencia de referencia, lo que consumirá rendimiento; para CACHE, solo se calculará una vez al almacenar en caché; si desea generar rápidamente valores de secuencia, aumente el valor de CACHE para escenarios de aplicación reales , como el número de pedidos.

5. Si desea utilizar el valor de secuencia como clave principal, la secuencia debe definirse como NOCYCLE.

 

 

 

Supongo que te gusta

Origin blog.csdn.net/Ezreal_XLove/article/details/112850902
Recomendado
Clasificación