sql >> Databasteknik >  >> RDS >> Oracle

Vad är anledningen / användbarheten är att använda ENABLE nyckelord i oracle databas uttalanden

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:

  1. Inaktivera tillstånd.

  2. Utför operationen (ladda, exportera, importera).

  3. 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:

  1. För tydlighetens skull (Python EIBTI-regeln Explicit är bättre än implicit )
  2. För fullständighetens skull
  3. 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.




  1. Läs och importera XLSX (Excel)-fil i Oracle

  2. Min DBA är sjuk - Databas Failover Tips för SysAdmins

  3. Hur man lägger till 10 sekunder i current_timestamp SQL (Oracle)

  4. 2 sätt att få antalet dagar i en månad i Oracle