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 |
|
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 |
|
|
YES | ALWAYS | Wpisywanie wartości dla kolumny z kluczem głównym jest zablokowane dla użytkownika |
|
|
NO | NO | Nie dotyczy | Brak możliwości wypisania wartości klucza głównego przez użytkownika |
|
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)
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.