Constraint doc
:
CREATE TABLE "EVALUATION" (
"EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,
ENABLE/DISABLE
indikerar att begränsningen är på eller av. Som standard ENABLE
används.
AKTIVERA Klausul Ange ENABLE om du vill att begränsningen ska tillämpas på data i tabellen.
AVAKTIVERA Klausul Ange DISABLE för att inaktivera integritetsbegränsningen. Inaktiverade integritetsbegränsningar visas i dataordlistan tillsammans med aktiverade begränsningar. Om du inte anger denna sats när du skapar en begränsning, aktiverar Oracle begränsningen automatiskt.
Restriktioner används för att säkerställa dataintegritet, men det finns scenarier som vi kan behöva för att inaktivera dem.
Managing Integrity
:
Inaktivera begränsningar
För att upprätthålla reglerna som definieras av integritetsbegränsningar, bör begränsningarna alltid vara aktiverade. Men överväg att tillfälligt inaktivera integritetsbegränsningarna för en tabell av följande prestandaskäl:
När du laddar in stora mängder data i en tabell
När du utför batchoperationer som gör stora ändringar i en tabell (till exempel ändrar varje anställds nummer genom att lägga till 1000 till det befintliga numret)
När du importerar eller exporterar en tabell i taget
I alla tre fallen kan tillfällig inaktivering av integritetsbegränsningar förbättra operationens prestanda, särskilt i datalagerkonfigurationer.
Det är möjligt att ange data som bryter mot en begränsning medan den begränsningen är inaktiverad. Därför bör du alltid aktivera begränsningen efter att ha slutfört någon av operationerna som anges i föregående punktlista.
Effektiv användning av integritetsbegränsningar:en procedur
Att använda integritetsbegränsningstillstånd i följande ordning kan säkerställa de bästa fördelarna:
Inaktivera tillstånd.
Utför operationen (ladda, exportera, importera).
Aktivera novalidate state.
Några fördelar med att använda begränsningar i den här ordningen är:
Inga lås hålls.
Alla begränsningar kan aktiveras samtidigt.
Begränsningsaktivering görs parallellt.
Samtidig aktivitet på bordet är tillåten.
EDIT:
Frågan är snarare varför man använder uppenbart nyckelord när det är aktiverat som standard:
Jag skulle säga:
- För tydlighetens skull (Python EIBTI-regeln Explicit är bättre än implicit )
- För fullständighetens skull
- Personlig smak och/eller kodningskonvention
Detta är samma kategori som:
CREATE TABLE tab(col INT NULL)
Varför använder vi NULL
om kolumnen är nullbar som standard.