Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych

W tabeli pracownicy zdefiniowano klucz główny id typu INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT, a także pola imie oraz nazwisko. Tabela zawiera już rekord, w którym id ma wartość 5. Wykonanie w bazie danych MySQL przedstawionej w ramce kwerendy spowoduje

INSERT INTO pracownicy (id, imie, nazwisko) VALUES (5, 'Anna', 'Nowak');
A. błąd zduplikowanej wartości klucza głównego - rekord nie zostanie dodany.
B. dodanie rekordu do tabeli z wartością NULL w polu klucza głównego.
C. zastąpienie istniejącego rekordu o id równym 5 nowymi danymi.
D. dodanie rekordu do tabeli, a klucz główny przyjmie kolejną wolną wartość.
Poprawna odpowiedź to: błąd zduplikowanej wartości klucza głównego - rekord nie zostanie dodany. Pole id jest kluczem głównym, więc każda jego wartość musi być unikalna. Ponieważ w tabeli istnieje już rekord z id równym 5, polecenie INSERT próbujące wstawić drugi rekord z tą samą wartością narusza ograniczenie PRIMARY KEY. Atrybut AUTO_INCREMENT nie zmienia podanej jawnie wartości id - działa wtedy, gdy wartość klucza nie zostanie podana albo zostanie przekazana w sposób uruchamiający automatyczne nadanie numeru. Do zapamiętania: INSERT z ręcznie podanym id próbuje zapisać dokładnie tę wartość. W praktyce, aby uniknąć kolizji, najczęściej pomija się kolumnę AUTO_INCREMENT w instrukcji INSERT.
W tej sytuacji decydujące jest to, że w instrukcji INSERT jawnie podano id = 5. Odpowiedź „dodanie rekordu do tabeli, a klucz główny przyjmie kolejną wolną wartość” byłaby trafna wtedy, gdy kolumna id zostałaby pominięta w poleceniu albo baza miała samodzielnie nadać wartość AUTO_INCREMENT. Tutaj MySQL nie zastępuje podanej liczby kolejnym numerem. Odpowiedź „zastąpienie istniejącego rekordu o id równym 5 nowymi danymi” opisuje działanie innych konstrukcji, na przykład REPLACE albo INSERT ... ON DUPLICATE KEY UPDATE, ale zwykły INSERT nie aktualizuje istniejącego wiersza. Odpowiedź „dodanie rekordu do tabeli z wartością NULL w polu klucza głównego” także nie pasuje, ponieważ w zapytaniu podano wartość 5, a klucz główny ma ograniczenie NOT NULL. Poprawna odpowiedź to: błąd zduplikowanej wartości klucza głównego - rekord nie zostanie dodany. Typowy błąd polega na założeniu, że AUTO_INCREMENT zawsze ignoruje ręcznie wpisane id.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.