TRUNCATE w SQL
Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Co to jest TRUNCATE w SQL?
TRUNCATE to polecenie SQL służące do szybkiego usunięcia wszystkich rekordów z tabeli, bez usuwania samej tabeli, jej struktury, kolumn, indeksów ani definicji.
Najczęstsza postać polecenia:
TRUNCATE TABLE nazwa_tabeli;
Po wykonaniu tego polecenia tabela nadal istnieje, ale jest pusta.
Kiedy używa się TRUNCATE?
TRUNCATE stosuje się wtedy, gdy trzeba wyczyścić całą tabelę, np. dane testowe, logi lub tymczasowe rekordy.
Przykład:
TRUNCATE TABLE klienci;
Polecenie usuwa wszystkie dane z tabeli klienci, ale tabela klienci nadal pozostaje w bazie danych.
TRUNCATE a DELETE
DELETE również może usuwać rekordy, ale zwykle działa wiersz po wierszu i może usuwać tylko wybrane dane:
DELETE FROM klienci WHERE miasto = 'Kraków';
Aby usunąć wszystkie rekordy przez DELETE, można napisać:
DELETE FROM klienci;
Jednak TRUNCATE jest zwykle szybsze, bo usuwa całą zawartość tabeli naraz.
Ważne cechy TRUNCATE
- usuwa wszystkie rekordy z tabeli,
- nie usuwa samej tabeli,
- nie zmienia struktury tabeli,
- zwykle resetuje licznik
AUTO_INCREMENTw MySQL, - nie pozwala użyć warunku
WHERE, - w wielu systemach SQL jest traktowane jako polecenie DDL.
Typowa pułapka egzaminacyjna
Nie należy mylić TRUNCATE z DROP. Polecenie DROP TABLE usuwa całą tabelę wraz z jej strukturą, natomiast TRUNCATE TABLE usuwa tylko dane.