Resumen: En este tutorial, aprenderá a usar la columna de identidad de Oracle para definir fácilmente una columna numérica generada automáticamente para una tabla.

Introducción a Oracle identity column

Oracle 12c introdujo una nueva forma que le permite definir una columna de identidad para una tabla, que es similar a la columnaAUTO_INCREMENT en MySQL oIDENTITY en SQL Server.

la columna de identidad es muy útil para la columna de clave primaria sustituta., Al insertar una nueva fila en la columna identidad, Oracle genera automáticamente e inserta un valor secuencial en la columna.

para definir una columna de identidad, utilice la cláusula identity como se muestra a continuación:

primero, la palabra clave GENERATED es obligatoria.

en segundo lugar, puede especificar una opción para generar valores de identidad:

  • GENERATED ALWAYS: Oracle siempre genera un valor para la columna de identidad. Intentar insertar un valor en la columna identidad causará un error.,
  • GENERATED BY DEFAULT: Oracle genera un valor para la columna de identidad si no proporciona ningún valor. Si proporciona un valor, Oracle insertará ese valor en la columna identidad. Para esta opción, Oracle emitirá un error si inserta un valor nulo en la columna identidad.
  • GENERATED BY DEFAULT ON NULL: Oracle genera un valor para la columna de identidad si proporciona un valor nulo o ningún valor.

En tercer lugar, puede tener varias opciones para la columna identidad.,

  • START WITH initial_value controla el valor inicial a usar para la columna identidad. El valor inicial predeterminado es 1.
  • INCREMENT BY internval_value define el intervalo entre los valores generados. De forma predeterminada, el valor del intervalo es 1.
  • CACHE define una serie de valores que Oracle debe generar antemano para mejorar el rendimiento. Utilice esta opción para la columna que tiene un número elevado de inserciones.

ejemplos de columnas de identidad de Oracle

veamos algunos ejemplos de uso de las columnas de identidad de Oracle.,

A) GENERADO SIEMPRE ejemplo

La siguiente instrucción crea una tabla con el nombre identity_demo que contiene una columna de identidad:

La siguiente instrucción inserta una nueva fila en el identity_demo tabla:

Debido a que no especifica un valor para la etiqueta id columna, Oracle genera automáticamente un valor secuencial a partir del 1.,

La siguiente declaración intenta insertar un valor en el id columna de identidad:

Oracle emite un error:

Debido a que la columna de id se define como GENERATED ALWAYS, no podría aceptar cualquier valor proporcionado.,

B) GENERATED BY DEFAULT example

Let’s change the id column to GENERATED BY DEFAULT:

The following statement inserts a new row into the identity_demo table:

It worked as expected.,

la siguiente instrucción inserta una nueva fila en la tabla identity_demo con un valor proporcionado para la columna id:

en este ejemplo, Oracle utilizó el valor proporcionado y lo insertó en la tabla.,Primero, recrea la tabla identity_demo cuya columna id se define como columna de identidad con el valor inicial que comienza desde 100:

segundo, inserte una fila en la identity_demo tabla:

tercero, consulta los datos de la identity_demo tabla:

como puede ver, el valor inicial de la columna id es 100 como se especifica en la cláusula identity.,

e) incremento por ejemplo de opción

primero, cambie la columna id de la tabla identity_demo que incluye las opciones START WITH y INCREMENT BY.

en Segundo lugar, insertar dos filas en el identity_demo tabla:

Tercer lugar, la consulta de los datos de la tabla para comprobar los insertos:

Como puede ver, la primera fila tiene el valor de id de 10. La segunda fila tiene el valor id 20., Esto es lo que definimos para la columna id que debe comenzar con 10 y aumentar en 10 para la nueva fila.

restricciones de columna de identidad de Oracle

las columnas de identidad están sujetas a las siguientes restricciones:

  • Cada tabla tiene una y solo una columna de identidad.
  • El tipo de datos de la columna identidad debe ser un tipo de datos numérico. el tipo de datos definido por el Usuario no se puede usar con la cláusula identity.
  • la columna identity no es heredada por la instrucción CREATE TABLE AS SELECT.,
  • la columna identidad no puede tener otra restricción DEFAULT.
  • Se puede inferir el algoritmo de cifrado para las columnas de identidad cifradas, por lo tanto, debe usar un algoritmo de cifrado fuerte.
  • La restricción inline de la columna identity no debe entrar en conflicto con la restricción NOT NULL y NOT DEFERRABLE indicada por la cláusula identity.

en este tutorial, ha aprendido a usar la columna de identidad de Oracle que le permite definir fácilmente una columna numérica generada automáticamente para una tabla.,

  • ¿Fue útil este tutorial?
  • YesNo

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *