Strona główna › Pytania INF.03 › Pytanie 2409
INF.03 · pytanie #2409
Polecenie TRUNCATE TABLE w systemie MySQL stosuje się do usuwania
- Atabel.
- Bwierszy tabeli.
- Cbaz danych.
- Dkolumn.
Poprawna odpowiedź: B. wierszy tabeli.
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Poprawnie – TRUNCATE TABLE w MySQL służy do usuwania wszystkich wierszy z tabeli, a nie samej tabeli. Technicznie jest to polecenie DDL (Data Definition Language), chociaż z punktu widzenia efektu końcowego zachowuje się „podobnie” do bardzo szybkiego DELETE bez klauzuli WHERE. Różnica jest jednak istotna. TRUNCATE TABLE usuwa wszystkie rekordy naraz, zwykle poprzez opróżnienie całych segmentów danych, dzięki czemu jest znacznie szybsze niż klasyczne DELETE FROM tabela, które kasuje każdy wiersz osobno i loguje każdą operację. W MySQL po TRUNCATE bardzo często licznik AUTO_INCREMENT resetuje się do wartości początkowej, co w praktyce oznacza, że nowe rekordy dostaną takie same ID, jak kiedyś istniały. To jest ważne np. w środowisku testowym, gdy chcesz „wyczyścić” tabelę i zacząć od zera. W środowisku produkcyjnym trzeba uważać, bo po TRUNCATE nie da się przywrócić danych zwykłym ROLLBACK (w większości silników MySQL, np. InnoDB, traktowane jest to jak operacja DDL i commitowana jest natychmiast). Moim zdaniem TRUNCATE najlepiej używać wtedy, gdy mamy tabelę pomocniczą, logi, cache albo dane tymczasowe, które można bezpiecznie wyrzucić w całości i nie potrzebujemy historii zmian. Dobrą praktyką jest też upewnienie się, że na tabeli nie ma powiązań przez klucze obce, bo w MySQL TRUNCATE na tabeli referencjonowanej przez FOREIGN KEY może się nie udać albo wymagać wcześniejszego wyłączenia ograniczeń referencyjnych. W skrócie: TRUNCATE TABLE to narzędzie do szybkiego, hurtowego kasowania wszystkich wierszy tabeli, z zachowaniem samej struktury tej tabeli (kolumny, indeksy, definicje kluczy zostają).
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.