Si alguna vez ha trabajado con bases de datos MySQL, puede estar familiarizado con la columna Auto_incement. En Oracle, utilizamos una columna de identidad para permitir que el motor de la base de datos genere automáticamente un valor numérico para cada fila agregada a la tabla a un intervalo específico.
Columna de identidad de Oracle
La columna Oracle Identity está disponible en la versión 12c y superior. La columna de identidad genera automáticamente un valor numérico para cada fila insertada en la tabla.
Dado que el motor de la base de datos genera un valor único para cada fila agregada a la tabla, funciona como una clave primaria sustituta en la base de datos.
En Oracle, definimos una columna de identidad usando la sintaxis a continuación:
Generado [siempre | Por defecto [en NULL]]]
Como identidad [(identity_options)]
Los parámetros de la declaración, como se vio anteriormente, incluyen lo siguiente:
Columnas de identidad de Oracle
Descubra ejemplos básicos de cómo usar la columna de identidad en las bases de datos Oracle.
Oracle Crear columna de identidad
La forma más común y recomendada de crear una columna de identidad en una tabla es durante la creación.
Un ejemplo a continuación demuestra cómo podemos lograr esto:
Crear productos de mesa (
Número de producto_id generado siempre como identidad,
product_name varchar2 (255) no nulo,
Número de cantidad no check nulo (cantidad> 0),
número de precio,
Clave primaria (Product_ID)
);
La declaración anterior crea una tabla llamada productos con una columna de identidad de Product_ID.
Luego podemos insertar algunos registros de muestra en la tabla como:
Insertar en productos (Product_Name, Cantidad, precio) Valores ('Microsoft Volterra', 0, 599);
En este caso, no especificamos el valor para la columna Product_ID en la tabla anterior. Esto permitirá que el motor de la base de datos genere valores para las columnas agregadas automáticamente. Como se mencionó, Oracle comenzará con el valor de 1 y el incremento por 1 para cada fila agregada.
Como se mencionó, intentar agregar un valor para la columna de identidad dará como resultado un error:
Insertar en productos (Product_ID, Product_Name, Cantidad, Precio) Valores (2, 'Microsoft Volterra', 10, 599);
Error resultante:
Error de SQL: ORA-32795: No se puede insertar en una columna de identidad siempre generada
Esto se debe a que la columna de identidad está configurada para generar siempre.
Ejemplo 2 - Oracle Identity generada por defecto.
También podemos cambiar la columna de identidad de generada siempre generada por defecto como:
Crear productos de mesa (
Número de Product_ID generado por defecto como identidad,
product_name varchar2 (255) no nulo,
Número de cantidad no check nulo (cantidad> 0),
número de precio,
Clave primaria (Product_ID)
);
En este caso, podemos agregar manualmente un valor para la columna Product_ID.
Inserte en productos (Product_ID, Product_Name, Cantidad, Precio) Valores (1, 'Microsoft Volterra', 0, 599);
Del mismo modo, si no proporcionamos un valor para la columna, el motor de la base de datos lo generará automáticamente.
No puede insertar un valor nulo en una columna de identidad como se define anteriormente.
Ejemplo 3
También podemos definir el inicio y los valores de intervalo durante la creación de la tabla como se muestra:
Crear productos de mesa (
Número de producto_id generado por defecto a medida que la identidad comienza con 10 incrementos por 2,
product_name varchar2 (255) no nulo,
Número de cantidad no check nulo (cantidad> 0),
número de precio,
Clave primaria (Product_ID)
);
En este caso, los valores autogenados comenzarán en diez e incrementarán por 2 para cada nueva fila agregada a la tabla.
Puntos a tener en cuenta
Aunque una columna de identidad proporciona una conveniencia considerable cuando se trabaja con un conjunto de datos grande, viene con restricciones. Éstas incluyen:
Conclusión
En esta publicación, descubrió los diversos métodos y técnicas de trabajo con la columna de identidad en las bases de datos Oracle.