Dodaj ograniczenie kontroli do istniejącej tabeli w Oracle

Dodaj ograniczenie kontroli do istniejącej tabeli w Oracle
Ograniczenie kontroli pozwala nam zdefiniować wyrażenia logiczne, które mogą zwrócić prawdziwe lub fałszywe. Silnik bazy danych ocenia następnie wszystkie dane, które są wstawiane lub aktualizowane w tej kolumnie, aby upewnić się, że przestrzega reguł wyrażenia.

Jeśli dane przylegają do reguł wyrażenia, silnik bazy danych akceptuje dane i zezwala na instrukcję wstawki lub aktualizacji. W przeciwnym razie, jeśli dane nie są zgodne z przepisami, silnik bazy danych odrzuca dane i zaprzecza operacji wstawki lub aktualizacji.

Jedna kolumna może mieć jedno lub więcej ograniczeń kontrolnych, pod warunkiem, że nie są one sprzeczne z innymi istniejącymi ograniczeniami kontroli. Ponadto nie należy zakładać kolejności oceny ekspresji.

Podobnie możesz mieć więcej niż jedną kolumnę z ograniczeniem kontroli.

Zasady ograniczenia czeku w Oracle

Określając ograniczenie kontroli w bazach danych Oracle, należy postępować zgodnie z tymi regułami:

  • Ograniczenie kontroli jest zdefiniowane w tabeli Oracle, a nie widok.
  • Ograniczenie kontroli musi odnosić się tylko do kolumn w tej tabeli, a nie w tabelach obcych.
  • Ograniczenia czeku nie można zdefiniować w podtrzymaniu.
  • Wyrażenie o ograniczeniu kontroli nie może zawierać funkcji nieokreślenia, funkcji zdefiniowanych przez użytkownika, zagnieżdżonych tabel, pseudo kolumn lub zagnieżdżonych atrybutów.

Chociaż zaleca się użycie ograniczenia kontroli podczas tworzenia tabeli, możesz napotkać takie scenariusze, w których musisz dodać ograniczenie kontroli do istniejącej tabeli.

Omówmy, jak możemy to zrobić w bazie danych Oracle.

Dodaj instrukcję kontroli ograniczenia

Aby dodać ograniczenie kontroli do istniejącej tabeli bazy danych, używamy instrukcji Alter Tbale Dodaj ograniczenie. Składnia jest jak pokazana:

Zmień tabelę TABLE_NAME
Dodaj Contrarity Constraint_name Check (check_constraint_Expression);

Dodaj ograniczenie kontroli do istniejącej tabeli

Pokazajmy, jak dodać ograniczenie kontroli do istniejącej tabeli. Zacznijmy od utworzenia tabeli testowej:

Utwórz tabelę produktu_stock (
Product_id Number Key podstawowy,
Product_name varchar2 (255),
Numer ds. quantity,
stock_level varchar2 (255)
);

Poprzednie zapytanie tworzy tabelę do przechowywania informacji o zapasach produktów. Następnie dodaj przykładowe dane, jak pokazano następująco:

Wstaw do produktu_stock (produkt_id, nazwa_produktu, Stock_quantity, Stock_Level) Wartości (1, „Product1”, 100, „in”);
Wstaw do produktu_stock (Product_id, Product_name, Stock_quantity, Stock_Level) Wartości (2, „Product2”, 13, „in”);
Wstaw do produktu_stock (Product_id, Product_name, Stock_quantity, Stock_Level) Wartości (3, „Product3”, 160, „Out”);
Wstaw do produktu_stock (produkt_id, nazwa_produktu, stock_quantity, stock_level) wartości (4, „produkt4”, 10, „in”);
Wstaw do produktu_stock (Product_id, Product_name, Stock_quantity, Stock_Level) Wartości (5, „Product5”, 320, „in”);

Wynikowy stół

Załóżmy, że chcemy upewnić się, że wstawione dane mają kwotę ponad 100. Możemy dodać ograniczenie kontroli w następujący sposób:

Alter Table Product_stock
Dodaj ograniczenie VALIDATE_STOCK Check (Stock_quantity> = 100);

Teraz, jeśli spróbujemy dodać wiersz o Quantity mniej niż 100, otrzymujemy błąd w następujący sposób:

Wstaw do produktu_stock (produkt_id, nazwa_produktu, Stock_quantity, Stock_Level) Wartości (6, „Product6”, 60, „Out”);

Błąd

[23000] [2293] ORA-02293: Nie można weryfikować (HR.VALIDATE_STOCK) - Sprawdź ograniczenie naruszone

Wniosek

Masz to! Sposób dodania ograniczenia kontroli do istniejącej tabeli w bazach danych Oracle. Mamy nadzieję, że ten artykuł jest pomocny.