Baza Oracle: W jaki sposób sprawdzić czy tabela posiada klucz główny. Typy ograiczeń

Ograniczenie (ang. constraint) to reguła, którą definiujesz a jej zadaniem jest ochrona tabeli przed bałaganem jaki może powstać w wyniku dodawania błędych lub niekompletnych danych.

Typy ograniczeń

W Oraclu mamy pięć typów ograniczeń, które możemy zdefiniować, są to:

  • Klucz Główny (ang. Primary Key): zapewnia nam, że dana kolumna lub zestaw kolumn posiada wartości unikalne i nie mogą być nullem. Najcześciej stosowany jako identyfikator wiersza.
  • Klucz Obcy (ang. Foreign Key Constraint): Zapewnia nam, że wartości w kolumnie lub zestawie kolumn łączą się z wartościami w tabeli referencyjnej.
  • Unikaność (ang. Unique Constraint): zapewnia nam, że wartości w danej kolumnie są unikalne.
  • Brak nulli (Not Null Constraint): zapewnia nam, że wartości w danej kolumnie nie mogą być nullem.
  • Warunek (ang. Check Constraint):zapewnia nam, że wartości spełniają jakiś określony warunek.

Kilka sposobów

Sprawdzenie ograniczeń na tabeli możemy wykonać na wiele sposobów. W tym poście pokaże Ci jak to możesz zrobić za pomocą:

  • SQL Developer
  • DBeaver
  • Zapytania SQL

SQL Developer

Kliknij na wybraną tabele z menu rozwijanego po lewej stronie, a następnie wybierz zakładę “Constraints”. Na potrzeby tego posta utworzyłem table TEST_TABLE i dodałem do niej klucz główny na ID oraz ograniczenie Not Null na kolumnie AGE.

DBeaver

W DBeaver wystarczy rozwiąnć zakładkę “Constraints” w drzewie pod wybraną tabelą.

Zapytanie SQL

Na koniec przedstawię Ci w jaki sposób pobrać wszystkie ograniczenia dla wskazanej tabeli. To zapytanie może się okazać również pomocne, gdy potrzebujemy dostać informację o wszystkich ogrniczeniach w ramach bazy.

SELECT ACC.TABLE_NAME, ACC.COLUMN_NAME, ACC.POSITION, AC.STATUS, AC.OWNER, AC.CONSTRAINT_TYPE
FROM ALL_CONSTRAINTS AC, ALL_CONS_COLUMNS ACC
WHERE ACC.TABLE_NAME = 'TEST_TABLE'
AND AC.CONSTRAINT_NAME = ACC.CONSTRAINT_NAME
AND AC.OWNER = ACC.OWNER;

Powyższe zapytanie oczywiście warto sobie zmodyfikować, aby jak najlepiej było dopasowane do naszych potrzeb. W przypadku większej ilości tabel warto zastosować filtrowanie lub sortowanie np. po kolumnie OWNER, POSITION, CONSTRAINT_TYPE itd.

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

0 0 vote
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments