sql >> Databáze >  >> RDS >> Oracle

Jaký je důvod / užitečnost je použití klíčového slova ENABLE v příkazech databáze Oracle

Constraint doc :

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

ENABLE/DISABLE označuje, že omezení je zapnuto nebo vypnuto. Ve výchozím nastavení ENABLE se používá.

Ustanovení ENABLE Pokud chcete, aby bylo omezení aplikováno na data v tabulce, zadejte ENABLE.

Klauzule DISABLE Zadáním DISABLE zakážete omezení integrity. Vypnutá omezení integrity se objeví v datovém slovníku spolu s povolenými omezeními. Pokud tuto klauzuli neurčíte při vytváření omezení, Oracle omezení automaticky povolí.

Omezení se používají k zajištění integrity dat, ale existují scénáře, kdy je možná budeme muset zakázat.

Managing Integrity :

Deaktivace omezení

Chcete-li vynutit pravidla definovaná omezeními integrity, omezení by měla být vždy povolena. Zvažte však dočasné zakázání omezení integrity tabulky z následujících důvodů výkonu:

  • Při načítání velkého množství dat do tabulky

  • Při provádění dávkových operací, které provádějí rozsáhlé změny v tabulce (například změna čísla každého zaměstnance přidáním 1000 k existujícímu číslu)

  • Při importu nebo exportu jedné tabulky najednou

Ve všech třech případech může dočasné vypnutí omezení integrity zlepšit výkon operace, zejména v konfiguracích datových skladů.

Je možné zadat data, která porušují omezení, když je toto omezení zakázáno. Proto byste měli vždy povolit omezení po dokončení jakékoli z operací uvedených v předchozím seznamu odrážek.

Efektivní využití omezení integrity:Postup

Použití stavů omezení integrity v následujícím pořadí může zajistit nejlepší výhody:

  1. Zakázat stav.

  2. Proveďte operaci (načtení, export, import).

  3. Povolit stav novalidate.

    Některé výhody použití omezení v tomto pořadí jsou:

    • Nejsou drženy žádné zámky.

    • Všechna omezení mohou přejít k povolení stavu současně.

    • Povolení omezení se provádí paralelně.

    • Souběžná aktivita na stole je povolena.

UPRAVIT:

Otázkou spíše je, proč používat samozřejmé klíčové slovo, když je ve výchozím nastavení zapnuto:

Řekl bych:

  1. Pro srozumitelnost (pravidlo Python EIBTI Explicitní je lepší než implicitní )
  2. Pro úplnost
  3. Osobní vkus a/nebo konvence kódování

Toto je stejná kategorie jako:

CREATE TABLE tab(col INT NULL)

Proč používáme NULL pokud má sloupec ve výchozím nastavení hodnotu null.




  1. Pomocí OBJECTPROPERTY() zjistěte, zda je objekt zobrazením na serveru SQL Server

  2. Chyba 404 Nenalezeno s EM 12c

  3. Indexuje MySQL automaticky sloupce cizích klíčů?

  4. Vypočítejte průběžný součet / průběžný zůstatek