Konfiguracja klucza głównego w tabeli

Edytowalność tabeli w bazie IBM DB2 (Read Only)

W przypadku bazy IBM DB2 za edytowalność tabeli odpowiada klucz główny (Primary Key), oraz przypisany do klucza parametr ENFORCED. Informację na temat ustawienia parametru możemy sprawdzić za pomocą narzędzia IBM DB2 Warehouse Console, lub z poziomu bazy. Aby tabela w bazie IBM DB2 była edytowalna musi posiadać klucz główny, oraz odpowiednio ustawiony parametr ENFORCED.

  • Parametr ENFORCED – no (Tabela w aplikacji Data Editor jest w trybie “Tylko do odczytu”, edycja tej tabeli nie jest dozwolona, kolumny w tabeli są wyszarzone). Parametr ENFORCED – no oznacza iż, nie jest wymuszane sprawdzanie unikalności klucza głównego, a więc może istnieć wiele wierszy z danym kluczem głównym.

  • Parametr ENFORCED – yes (Tabela w aplikacji Data Editor jest edytowalna z wyjątkiem klucza głównego (Primary Key), tylko kolumna z kluczem głównym jest wyszarzona) Parametr ENFORCED – yes oznacza iż, wymuszane jest sprawdzanie unikalności klucza głównego, a więc może istnieć tylko jeden wiersz z danym kluczem głównym.

Edytowalność klucza głównego tabeli w bazie IBM DB2

W przypadku bazy IBM DB2 istnieje możliwość wprowadzania klucza głównego (Primary Key) przez użytkownika w sposób ręczny, bądź wyłączenie opcji generującej klucz główny (Primary Key) w sposób automatyczny. Za ten parametr odpowiada funkcja GENERATED. Aby parametr był dostępny tabela musi posiadać klucz główny (Primary Key), a parametr IDENTITY musi być ustawiony na yes. Informację na temat ustawienia parametru możemy sprawdzić za pomocą narzędzia IBM DB2 Warehouse Console, lub z poziomu bazy.

GENERATED – Always (Wpisywanie wartości dla kolumny z kluczem głównym (Primary Key) nie jest dozwolone dla użytkownika, wartość klucza głównego jest generowany automatycznie)

GENERATED – None (Za wpisywanie wartości dla kolumny z kluczem głównym (Primary Key) odpowiedzialny jest użytkownik, unikalny klucz główny musi być wpisany ręcznie)

GENERATED – Default (Wpisywanie wartości dla kolumny z kluczem głównym (Primary Key) jest dozwolone dla użytkownika, w przypadku jeżeli klucz główny nie zostanie wprowadzony zostanie on wygenerowany automatycznie) Połączenie funkcji Always i None

 

Parameter Enforce i Generated w bazie IBM DB2 podsumowanie

IDENTITY ENFORCED GENERATED PRIMARY KEY DATA EDITOR
YES

 

YES NONE Klucz główny nigdy nie zostanie uzupełniony automatycznie, użytkownik musi wpisać wartość klucza ręcznie
  • Klucz główny (PK) edytowany
  • Kolumny edytowalne
  • Jeżeli wartość klucza z poziomu Data Editora nie jest unikalna, wiersz nie zostanie dodany
YES DEFAULT Wpisywanie unikatowej wartości dla kolumny z kluczem głównym jest dozwolone dla użytkownika, gdy użytkownik nie wpisze wartości baza wygeneruje stosowny klucz w sposób automatyczny
  • Klucz główny (PK) edytowany
  • Kolumny edytowalne
  • Jeżeli wartość klucza z poziomu Data Editora nie jest unikalna, wiersz nie zostanie dodany
YES ALWAYS Wpisywanie wartości dla kolumny z kluczem głównym jest zablokowane dla użytkownika
  • Klucz główny jest wyszarzony/ nieedytowalny (Read Only)
  • Kolumny edytowalne

 

NO NO Nie dotyczy Brak możliwości wypisania wartości klucza głównego przez użytkownika
  • Klucz główny (PK) niedytowalny
  • Kolumny nie edytowalne
  • Tabela znajduje się w trybie wyświetlania (Read Only)

Edytowalność tabeli w bazie MS SQL Server (Pierwsze kroki)

Aby tabela w Comarch Data Editor była edytowalna, musi posiadać zdefiniowany klucz główny. W Panelu administratora przy edycji widoku w zakładce „Informacje podstawowe” istnieje możliwość manualnego dodania lub usunięcia klucza głównego.

Jeśli jednak nie zostanie wskazana żadna kolumna zawierająca klucz główny to wtedy użytkownik będzie mógł korzystać jedynie z trybu „tylko do odczytu”, a opcje edycji będą niedostępne.

Aby wartości w kolumnie zawierającej klucz główny były generowane automatycznie po dodaniu nowego wiersza w Comarch Data Editor, tabela bazodanowa powinna mieć ustawiony parametr IDENTITY.

Dzięki zdefiniowanemu parametrowi IDENTITY w tabeli źródłowej, użytkownicy nie będą musieli ręcznie wprowadzać wartości do tej kolumny w modyfikowanym widoku w Panelu Data Editor.

Klucz główny w bazie MS SQL Server (Pierwsze kroki)

W bazie MS SQL Server edytowalność tabeli zależy od klucza głównego (Primary Key). Aby tabela była edytowalna, musi posiadać klucz główny. Dodatkowo, aby obiekt był traktowany jako tabela, musi mieć klucz główny oraz parametr IDENTITY. Informacje o ustawieniach można uzyskać bezpośrednio z bazy

Klucz główny w bazie PostgreSQL (Pierwsze kroki)

W przypadku PostgreSQL kolumny GENERATED ALWAYS AS IDENTITY są automatycznie wykrywane jako kolumny generujące wartości przy każdym wstawieniu rekordu, co eliminuje konieczność ręcznego podawania identyfikatora.

Kolumny SERIAL w Data Editor są interpretowane na podstawie metadanych pobranych z bazy danych i domyślnie oznaczane są jako podlegające wstawianiu, podlegające aktualizacji oraz niepuste. Oznacza to, że podczas wprowadzania nowych danych w Data Editor wymagane jest podanie wartości dla takiej kolumny.

W PostgreSQL mechanizm SERIAL działa automatycznie tylko do momentu wprowadzenia wartości ręcznie przez użytkownika. Po takim ręcznym wpisaniu identyfikatora baza może wymagać jawnego podawania wartości dla każdego kolejnego wiersza, co może prowadzić do błędów podczas zapisu danych.

Uwaga
Jeżeli mechanizm SERIAL ma działać z automatycznym generowaniem identyfikatorów, kolumny typu SERIAL należy ustawić jako: kolumny niepodlegające wstawianiu, kolumny niepodlegające aktualizacji oraz umożliwić puste wartości.

Czy ten artykuł był pomocny?