Co to jest TRUNCATE TABLE?
TRUNCATE TABLE to polecenie SQL służące do szybkiego usunięcia wszystkich rekordów z tabeli, przy jednoczesnym zachowaniu samej tabeli, jej kolumn, typów danych, indeksów i definicji.
Najczęściej używa się go wtedy, gdy tabela ma zostać opróżniona, ale nadal ma istnieć w bazie danych.
Składnia
TRUNCATE TABLE nazwa_tabeli;
Przykład:
TRUNCATE TABLE uczniowie;
Po wykonaniu tej instrukcji tabela uczniowie nadal istnieje, ale nie zawiera żadnych wierszy.
TRUNCATE TABLE a DELETE
Podobny efekt można uzyskać instrukcją:
DELETE FROM uczniowie;
Różnice są jednak ważne:
TRUNCATE TABLEusuwa wszystkie rekordy naraz,- zwykle działa szybciej niż
DELETE, - nie używa warunku
WHERE, więc nie można usunąć tylko wybranych rekordów, - w wielu systemach baz danych resetuje licznik
AUTO_INCREMENT, - często jest traktowane jako polecenie DDL, a nie typowe DML.
TRUNCATE TABLE a DROP TABLE
TRUNCATE TABLE nie usuwa struktury tabeli. Usuwa tylko dane.
DROP TABLE uczniowie;
Instrukcja DROP TABLE usuwa całą tabelę, czyli zarówno dane, jak i jej definicję. Po DROP TABLE tabela przestaje istnieć.
Ważne na egzaminie
Jeśli pytanie brzmi: „usunąć wszystkie rekordy z tabeli, zachowując samą tabelę”, poprawną odpowiedzią jest:
TRUNCATE TABLE
Nie należy mylić tego z DROP TABLE, które usuwa tabelę, ani z ALTER TABLE, które zmienia jej strukturę.