BD-1st-2.4-lab7.tresc-1.1-Slajd36

Z Studia Informatyczne
Wersja z dnia 09:13, 9 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zarządzanie ograniczeniami

Zarządzanie ograniczeniami


Ograniczenia integralnościowe można włączać i wyłączać za pomocą polecenia ALTER TABLE. Wyłączone ograniczenie nie jest w ogóle sprawdzane i mogą być do relacji wstawiane krotki niezgodne z tym ograniczeniem. Próba włączenia ograniczenia może zakończyć się błędem, jeżeli wstawione krotki nie spełniają tego ograniczenia. Przykład (1) pokazuje ogólną składnię polecenia ALTER TABLE pozwalającą na włączenie wcześniej wyłączonego ograniczenia. Polecenie rozpoczyna się od słów kluczowych ALTER TABLE, po których podaje się nazwę relacji, potem słowo kluczowe ENABLE i: albo słowo kluczowe CONSTRAINT i nazwę ograniczenia, albo rodzaj ograniczenia (np. PRIMARY KEY, UNIQUE). Przykład (2) pokazuje polecenie włączające ograniczenie o nazwie FK_ETAT. Przykład (3) demonstruje składnię polecenia ALTER TABLE pozwalającą na wyłączenie ograniczenia. Jest ona identyczna ze składnią pozwalającą na włączanie ograniczeń z tą jedną różnicą, że słowo kluczowe ENABLE zastąpiono słowem kluczowym DISABLE. Przykład (4) pokazuje polecenie wyłączające ograniczenie „klucz podstawowy” relacji PRACOWNICY.

Jeżeli podczas tworzenia relacji nie zdefiniowano nazwy ograniczenia integralnościowego, to nazwa ta jest generowana automatycznie przez SZBD. Jeżeli nie znamy nazwy ograniczenia, to w każdym SZBD istnieje możliwość sprawdzenia, jakie ograniczenia integralnościowe są zdefiniowane dla danej relacji. Sposób odczytania listy nazw ograniczeń zależy od SZBD. W SZBD Oracle można ją odczytać z tzw. słownika bazy danych. Jest to zestaw relacji, które przechowują informacje o różnych aspektach pracy SZBD. Przykładowo, aby odczytać listę nazw ograniczeń, ich typów i, w przypadku ograniczenia integralnościowego „ograniczenie domeny atrybutu” – warunku, można wykorzystać zapytanie:

SELECT constraint_name, constraint_type, search_condition

FROM user_constraints

WHERE table_name=‘NAZWA_RELACJI';


<< Poprzedni slajd | Spis treści | Następny slajd >>