Constraint doc
:
CREATE TABLE "EVALUATION" (
"EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,
ENABLE/DISABLE
indica che il vincolo è attivato o disattivato. Per impostazione predefinita ENABLE
viene utilizzato.
Clausola ABILITA Specificare ENABLE se si desidera applicare il vincolo ai dati nella tabella.
Clausola DISABLE Specificare DISABLE per disabilitare il vincolo di integrità. I vincoli di integrità disabilitati vengono visualizzati nel dizionario dei dati insieme ai vincoli abilitati. Se non specifichi questa clausola durante la creazione di un vincolo, Oracle abilita automaticamente il vincolo.
I vincoli vengono utilizzati per garantire l'integrità dei dati, ma in alcuni scenari potrebbe essere necessario disabilitarli.
Managing Integrity
:
Disabilitazione dei vincoli
Per applicare le regole definite dai vincoli di integrità, i vincoli devono essere sempre abilitati. Tuttavia, considera la possibilità di disabilitare temporaneamente i vincoli di integrità di una tabella per i seguenti motivi di performance:
-
Quando si caricano grandi quantità di dati in una tabella
-
Quando si eseguono operazioni batch che apportano modifiche massicce a una tabella (ad esempio, modificando il numero di ogni dipendente aggiungendo 1000 al numero esistente)
-
Durante l'importazione o l'esportazione di una tabella alla volta
In tutti e tre i casi, la disabilitazione temporanea dei vincoli di integrità può migliorare le prestazioni dell'operazione, soprattutto nelle configurazioni di data warehouse.
È possibile inserire dati che violano un vincolo mentre tale vincolo è disabilitato. Pertanto, dovresti sempre abilitare il vincolo dopo aver completato una qualsiasi delle operazioni elencate nell'elenco puntato precedente.
Uso efficiente dei vincoli di integrità:una procedura
L'utilizzo degli stati di vincolo di integrità nell'ordine seguente può garantire i migliori vantaggi:
-
Disabilita lo stato.
-
Eseguire l'operazione (caricamento, esportazione, importazione).
-
Abilita stato non convalidato.
Alcuni vantaggi dell'utilizzo dei vincoli in questo ordine sono:
-
Nessun blocco viene mantenuto.
-
Tutti i vincoli possono andare ad abilitare lo stato contemporaneamente.
-
L'abilitazione dei vincoli viene eseguita in parallelo.
-
È consentita l'attività simultanea sul tavolo.
-
MODIFICA:
La domanda è piuttosto perché usare ovvio parola chiave quando è attivata per impostazione predefinita:
Direi:
- Per chiarezza (regola Python EIBTI L'esplicito è meglio che implicito )
- Per completezza
- Gusto personale e/o convenzione di codifica
Questa è la stessa categoria di:
CREATE TABLE tab(col INT NULL)
Perché utilizziamo NULL
se la colonna è nullable per impostazione predefinita.