TRUNCATE TABLE w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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 TABLE usuwa 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ę.