Fügen Sie einer vorhandenen Tabelle in Oracle eine Einschränkung der Überprüfung hinzu

Fügen Sie einer vorhandenen Tabelle in Oracle eine Einschränkung der Überprüfung hinzu
Eine Überprüfungsbeschränkung ermöglicht es uns, die logischen Ausdrücke zu definieren, die wahr oder falsch zurückgeben können. Die Datenbank -Engine bewertet dann alle Daten, die in dieser Spalte eingefügt oder aktualisiert werden, 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

Befolgen Sie diese Regeln, wenn Sie eine Überprüfung in Oracle -Datenbanken definieren:

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

Obwohl es empfohlen wird, eine Überprüfungsbeschränkung während der Erstellung von Tabellen zu verwenden, können Sie solchen Szenarien begegnen, in denen Sie einer vorhandenen Tabelle eine Überprüfungsbeschränkung hinzufügen müssen.

Lassen Sie uns diskutieren, wie wir dies in einer Oracle -Datenbank tun können.

Fügen Sie eine Überprüfung der Einschränkung hinzu

Um einer vorhandenen Datenbanktabelle eine Einschränkung der Überprüfung hinzuzufügen, verwenden wir die Änderung TBALE -Einschränkungsanweisung hinzufügen. Die Syntax ist wie gezeigt:

TABLE TABLE TABLE_NAME
Hinzufügen von Einschränkungen hinzufügen

Fügen Sie der vorhandenen Tabelle eine Einschränkung der Überprüfung hinzu

Lassen Sie uns demonstrieren, wie Sie einer vorhandenen Tabelle eine Überprüfungsbeschränkung hinzufügen können. Beginnen wir zunächst eine Testtabelle:

Table product_stock erstellen (
Product_id Nummer Primärschlüssel,
product_name varchar2 (255),
Stock_quantity -Nummer,
stock_level varchar2 (255)
);

Die vorherige Abfrage erstellt eine Tabelle zum Speichern der Produktinformationsinformationen. Fügen Sie als Nächstes einige Beispieldaten hinzu, wie im Folgenden gezeigt:

In protous_stock (product_id, product_name, stock_quantity, stock_level) Werte (1, 'product1', 100, 'in') einfügen;
Einfügen in product_stock (product_id, product_name, stock_quantity, stock_level) Werte (2, 'product2', 13, 'in');
In protous_stock (product_id, product_name, stock_quantity, stock_level) Werte einfügen (3, 'product3', 160, 'out');
In protous_stock (product_id, product_name, stock_quantity, stock_level) Werte (4, 'product4', 10, 'in') einfügen;
In protous_stock (product_id, product_name, stock_quantity, stock_level) Werte einfügen (5, 'product5', 320, 'in');

Resultierende Tabelle

Nehmen wir an, wir möchten sicherstellen, dass die eingefügten Daten eine Stock_quantität von mehr als 100 haben. Wir können wie folgt eine Einschränkung der Überprüfung hinzufügen:

TABLE TABLE product_stock
Einschränkung validate_stock add add (stock_quantity> = 100);

Wenn wir nun versuchen, eine Zeile mit der Stock_quantity von weniger als 100 hinzuzufügen, erhalten wir einen Fehler wie folgt:

In protous_stock (product_id, product_name, stock_quantity, stock_level) Werte einfügen (6, 'product6', 60, 'out');

Fehler

[23000] [2293] OA-02293: kann nicht validieren (HR.Validate_stock) - Überprüfen Sie die Einschränkung verletzt

Abschluss

Hier hast du es! Eine Möglichkeit, einer vorhandenen Tabelle in Oracle -Datenbanken eine Überprüfungsbeschränkung hinzuzufügen. Wir hoffen, dass Sie diesen Artikel hilfreich gefunden haben.