W jaki sposób sprawdzić czy tabela posiada klucz główny Oracle – 5 typów ograniczeń (constraints)

Share This Post, Help Others, And Earn My Heartfelt Appreciation! :)
4.8
(245)

W tym poście skupimy się na problemie w jaki sposób sprawdzić czy tabela posiada klucz główny Oracle. 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łędnych lub niekompletnych danych.

Czy tabela posiada klucz główny Oracle?

Oracle: Typy ograniczeń

W Oracle 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.
  • Unikalność (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 jako okno do Oracle

Kliknij na wybraną tabele z menu rozwijanego po lewej stronie, a następnie wybierz zakładkę „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.

W jaki sposób sprawdzić czy tabela posiada klucz główny Oracle - 5 typów ograniczeń (constraints)

DBeaver

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

W jaki sposób sprawdzić czy tabela posiada klucz główny Oracle - 5 typów ograniczeń (constraints)

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 ograniczeniach 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;
W jaki sposób sprawdzić czy tabela posiada klucz główny Oracle - 5 typów ograniczeń (constraints)

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 lub udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

How useful was this post?

Click on a star to rate it!

Average rating 4.8 / 5. Vote count: 245

No votes so far! Be the first to rate this post.

Subscribe
Powiadom o
guest
0 Comments
Inline Feedbacks
View all comments