Przejdź do głównej treści
  1. Strona główna
  2. Słownik
  3. INF.03
  4. TRUNCATE w SQL

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_INCREMENT w 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.