Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quelle est la raison/l'utilité d'utiliser le mot-clé ENABLE dans les instructions de la base de données Oracle

Constraint doc :

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

ENABLE/DISABLE indique que la contrainte est activée ou désactivée. Par défaut ENABLE est utilisé.

Clause ENABLE Spécifiez ENABLE si vous souhaitez que la contrainte soit appliquée aux données de la table.

Clause DISABLE Spécifiez DISABLE pour désactiver la contrainte d'intégrité. Les contraintes d'intégrité désactivées apparaissent dans le dictionnaire de données avec les contraintes activées. Si vous ne spécifiez pas cette clause lors de la création d'une contrainte, Oracle active automatiquement la contrainte.

Les contraintes sont utilisées pour garantir l'intégrité des données, mais dans certains cas, nous devrons peut-être les désactiver.

Managing Integrity :

Désactivation des contraintes

Pour appliquer les règles définies par les contraintes d'intégrité, les contraintes doivent toujours être activées. Cependant, envisagez de désactiver temporairement les contraintes d'intégrité d'une table pour les raisons de performances suivantes :

  • Lors du chargement de grandes quantités de données dans une table

  • Lors de l'exécution d'opérations par lots qui apportent des modifications massives à une table (par exemple, modifier le numéro de chaque employé en ajoutant 1000 au numéro existant)

  • Lors de l'importation ou de l'exportation d'un tableau à la fois

Dans les trois cas, la désactivation temporaire des contraintes d'intégrité peut améliorer les performances de l'opération, en particulier dans les configurations d'entrepôt de données.

Il est possible d'entrer des données qui violent une contrainte alors que cette contrainte est désactivée. Ainsi, vous devez toujours activer la contrainte après avoir effectué l'une des opérations répertoriées dans la liste à puces précédente.

Utilisation efficace des contraintes d'intégrité :une procédure

L'utilisation des états de contrainte d'intégrité dans l'ordre suivant peut garantir les meilleurs avantages :

  1. Désactiver l'état.

  2. Effectuez l'opération (charger, exporter, importer).

  3. Activer l'état de non-validation.

    Certains avantages de l'utilisation des contraintes dans cet ordre sont :

    • Aucun verrou n'est détenu.

    • Toutes les contraintes peuvent passer simultanément à l'état d'activation.

    • L'activation des contraintes se fait en parallèle.

    • L'activité simultanée sur table est autorisée.

MODIF :

La question est plutôt pourquoi utiliser évident mot-clé lorsqu'il est activé par défaut :

Je dirais :

  1. Pour plus de clarté (règle Python EIBTI Explicit Is Better Than Implicit )
  2. Pour être complet
  3. Goût personnel et/ou convention de codage

Il s'agit de la même catégorie que :

CREATE TABLE tab(col INT NULL)

Pourquoi utilisons-nous NULL si la colonne est nullable par défaut.