Oracle Check -Einschränkung

Oracle Check -Einschränkung

Datendomänenintegrität oder Domänenintegrität ist eine Datenbankfunktion, die sicherstellt. Diese Funktion minimiert die Datenbeschädigung und dupliziert Werte in einer bestimmten Datenbank.

In diesem Tutorial lernen Sie, wie Sie die Domänenintegrität in Ihrer Oracle -Datenbank mithilfe der Check -Beschränkung durchsetzen können.

Oracle Check -Einschränkung

Eine Überprüfungsbeschränkung ermöglicht es uns, logische Ausdrücke zu definieren, die wahr oder falsch zurückgeben können. Die Datenbank -Engine bewertet dann alle in dieser Spalte eingefügten oder aktualisierten Daten, um sicherzustellen, dass sie an den Expressionsregeln haftet.

Wenn die Daten an den Expressionsregeln einhalten, akzeptiert die Datenbank -Engine die Daten und ermöglicht die Anweisung INSERT oder Aktualisierung. Andernfalls lehnt die Datenbank Engine die Daten ab und verweigert die Einfügung oder Aktualisierung der Datenbank -Engine nicht, wenn die Daten nicht entsprechen.

Eine einzelne Spalte kann eine oder mehrere Überprüfungsbeschränkungen haben, sofern sie nicht mit den anderen vorhandenen Überprüfungsbeschränkungen in Konflikt stehen. Darüber hinaus sollte die Auswertung der Ausdrucksreihenfolge nicht angenommen werden.

In ähnlicher Weise können Sie mehr als eine Spalte mit einer Überprüfungsbeschränkung haben.

Regeln einer Überprüfung in Oracle

Stellen Sie beim Definieren einer Überprüfung in Oracle -Datenbanken sicher:

  1. Die Überprüfungsbeschränkung ist in einer Orakeltabelle und nicht in einer Ansicht definiert.
  2. Die Überprüfungsbeschränkung darf sich nur auf die Spalten in dieser Tabelle beziehen und nicht auf Fremdtabellen.
  3. Eine Überprüfungsbeschränkung kann nicht in einer Unterabfrage definiert werden.
  4. Ein Ausdruck der Überprüfung der Einschränkung kann nicht deterministische Funktionen, benutzerdefinierte Funktionen, verschachtelte Tabellen, Pseudo-Spalten oder verschachtelte Attribute enthalten.

Oracle Create Check -Einschränkung erstellen

Es wird empfohlen, beim Erstellen einer Tabelle eine Überprüfungsbeschränkung zu erstellen. Dies stellt sicher, dass alle in der Tabelle eingefügten oder aktualisierten Daten den Regeln der Einschränkung übereinstimmen.

Das Folgende ist die Syntax zum Hinzufügen einer Überprüfung bei der Erstellung von Tabellen:

Table table erstellen (
Säulen,
column_name, data_type check (Constraint_expression);
);

Um eine Überprüfung der Einschränkung zu definieren, beginnen wir mit dem Namen der Spalte, auf die wir den Einschränkungs-Next, den Datentyp der Spalte und das Schlüsselwort überprüfen möchten. Schließlich wird der Einschränkungsausdruck in einem Paar Klammern bereitgestellt.

Obwohl nicht notwendig, müssen Sie manchmal eine eindeutige Bezeichnung für die Prüfbeschränkung manuell zuweisen. In einem solchen Szenario können Sie die Einschränkungserklärung verwenden:

Table table erstellen (
Säulen
Einschränkung der Einschränkung_Name
Check (Constraint_expression)
);

Oracle Create Constraint -Beispiel

Das folgende Beispiel erstellt eine Produkttabelle mit einer Scheckbeschränkung, die sicherstellt, dass die Aktie immer verfügbar ist:

Tischprodukte erstellen (
product_id nummer, die standardmäßig als Identität generiert wird,
product_name varchar2 (255) nicht null,
Mengenzahl nicht NULL -Überprüfung (Menge> 0),
Preisnummer,
Primärschlüssel (product_id)
);

In der obigen Tabelle definieren wir die Mengenspalte mit einer Überprüfungsbeschränkung, die sicherstellt, dass der Datenwert dieser Spalte größer als 0 ist.

In einem solchen Fall stellt die Einschränkung sicher, dass die in der Datenbank gespeicherten Produkte immer auf Lager sind.

Wenn wir versuchen, einen Datensatz hinzuzufügen, in dem die Menge 0 oder eine negative Zahl beträgt, gibt Oracle einen Fehler zurück und fehlschlägt die Anforderung.

Beispiel:

Einfügen in Produkte (product_name, Menge, Preis) Werte ('Microsoft Volterra', 0, 599);

Die obige Anfrage gibt einen Fehler zurück:

SQL-Fehler [2290] [23000]: ORA-02290: Überprüfung der Einschränkung (HR.Sys_c007662) verletzt

Oracle Drop Check -Einschränkung

Sobald Sie in Ihrer Tabelle keine Überprüfung mehr benötigen, können Sie sie mit dem Alter aus der Tabelle fallen lassen

Befehl table Drop Constraint:
TABLE TABLE TABLE_NAME
Drop Constraint Constraint_Name;

Oracle Deaktivieren Sie die Einschränkung der Überprüfung

Manchmal möchten Sie möglicherweise eine Einschränkung deaktivieren, ohne sie aus der Tabelle zu entfernen. Verwenden Sie den Befehl:

TABLE TABLE TABLE_NAME
Beschränkungsbeschränkung deaktivieren

Oracle Aktivieren Sie die Überprüfung der Einschränkung

Führen Sie Folgendes aus:

TABLE TABLE TABLE_NAME
Aktivieren Sie die Einschränkung der Einschränkung

Abschluss

In diesem Tutorial haben Sie festgestellt.