sql >> Base de Datos >  >> RDS >> Oracle

¿Cuál es el motivo/la utilidad de usar la palabra clave ENABLE en las declaraciones de la base de datos de Oracle?

Constraint doc :

CREATE TABLE "EVALUATION" (
    "EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,

ENABLE/DISABLE indica que la restricción está activada o desactivada. Por defecto ENABLE se utiliza.

Cláusula ENABLE Especifique ACTIVAR si desea que la restricción se aplique a los datos de la tabla.

Cláusula DISABLE Especifique DISABLE para deshabilitar la restricción de integridad. Las restricciones de integridad deshabilitadas aparecen en el diccionario de datos junto con las restricciones habilitadas. Si no especifica esta cláusula al crear una restricción, Oracle habilita automáticamente la restricción.

Las restricciones se utilizan para garantizar la integridad de los datos, pero hay situaciones en las que es posible que debamos desactivarlas.

Managing Integrity :

Restricciones de desactivación

Para hacer cumplir las reglas definidas por las restricciones de integridad, las restricciones siempre deben estar habilitadas. Sin embargo, considere deshabilitar temporalmente las restricciones de integridad de una tabla por las siguientes razones de rendimiento:

  • Al cargar grandes cantidades de datos en una tabla

  • Al realizar operaciones por lotes que realizan cambios masivos en una tabla (por ejemplo, cambiar el número de cada empleado agregando 1000 al número existente)

  • Al importar o exportar una tabla a la vez

En los tres casos, la desactivación temporal de las restricciones de integridad puede mejorar el rendimiento de la operación, especialmente en configuraciones de almacenamiento de datos.

Es posible ingresar datos que violen una restricción mientras esa restricción esté deshabilitada. Por lo tanto, siempre debe habilitar la restricción después de completar cualquiera de las operaciones enumeradas en la lista anterior.

Uso eficiente de restricciones de integridad:un procedimiento

El uso de estados de restricción de integridad en el siguiente orden puede garantizar los mejores beneficios:

  1. Deshabilitar estado.

  2. Realizar la operación (cargar, exportar, importar).

  3. Habilitar estado de novalidación.

    Algunos beneficios de usar restricciones en este orden son:

    • No se mantienen bloqueos.

    • Todas las restricciones pueden pasar al estado habilitado al mismo tiempo.

    • La habilitación de restricciones se realiza en paralelo.

    • Se permite la actividad simultánea en la mesa.

EDITAR:

La pregunta es más bien por qué usar obvio palabra clave cuando está activada de forma predeterminada:

Yo diría:

  1. Para mayor claridad (regla EIBTI de Python Explícito es mejor que implícito )
  2. Para completar
  3. Gusto personal y/o convención de codificación

Esta es la misma categoría que:

CREATE TABLE tab(col INT NULL)

¿Por qué usamos NULL? si la columna es anulable por defecto.