Strona główna › Pytania INF.03 › Pytanie 2627
INF.03 · pytanie #2627
<pre class="code-block">ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;</pre> Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
- Adodanie kolumny rok_produkcji typu INT w tabeli transport.
- Butworzenie tabeli transport zawierającej kolumnę rok_produkcji.
- Cusunięcie kolumny rok_produkcji w tabeli transport.
- Dzmianę typu danych w kolumnie rok_produkcji na INT.
Poprawna odpowiedź: D. zmianę typu danych w kolumnie rok_produkcji na INT.
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Poprawnie – polecenie ALTER TABLE ... MODIFY COLUMN w MySQL służy do modyfikowania istniejącej kolumny, a nie do jej tworzenia czy usuwania. W podanym przykładzie baza danych szuka tabeli o nazwie `transport`, a następnie zmienia definicję kolumny `rok_produkcji` tak, aby jej typ danych był `INT`. Jeśli kolumna już istnieje (a musi istnieć, żeby MODIFY zadziałało), to po wykonaniu polecenia dalej będzie miała tę samą nazwę, ale jej typ i właściwości zostaną nadpisane nową definicją. W MySQL warto pamiętać, że przy MODIFY COLUMN trzeba podać pełną definicję kolumny, nie tylko sam typ. Czyli jeśli wcześniej była np. NOT NULL albo miała domyślną wartość, to dobra praktyka jest napisać coś w stylu: `ALTER TABLE transport MODIFY COLUMN rok_produkcji INT NOT NULL DEFAULT 2000;` – inaczej można przypadkiem zgubić część ustawień. W praktyce takie polecenia stosuje się przy zmianach w projekcie bazy: np. najpierw kolumna jest typu VARCHAR, bo ktoś przechowuje tam rok jako tekst, a potem, zgodnie z lepszymi zasadami projektowania, zmienia się to na typ liczbowy INT, żeby można było łatwo filtrować, sortować, robić warunki typu `WHERE rok_produkcji > 2015`. Z mojego doświadczenia dobrze jest przed taką zmianą sprawdzić, czy wszystkie dane da się bezpiecznie skonwertować na liczbę, bo jeśli w kolumnie są jakieś śmieciowe wartości tekstowe, to MySQL może je obciąć albo zamienić na 0, co później robi bałagan w raportach. W środowiskach produkcyjnych takie ALTER TABLE najlepiej wykonywać po zrobieniu kopii zapasowej i często w oknie serwisowym, bo przy dużych tabelach operacja może chwilowo blokować dostęp do danych.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.