Czym różnią się polecenia DROP TABLE i TRUNCATE TABLE?
Źle.
DROP usuwa całą tabelę, nie tylko zawartość.Źle.
TRUNCATE nie usuwa tabeli i zwykle jest nieodwracalne.Źle.
TRUNCATE nie modyfikuje danych warunkowo.Dobrze. To poprawne rozróżnienie.
DROP TABLE usuwa CAŁĄ tabelę - razem ze strukturą (kolumnami, definicją), więc tabela przestaje istnieć. TRUNCATE TABLE kasuje tylko wszystkie WIERSZE, zostawiając pustą tabelę gotową do dalszego użycia. Dlatego DROP usuwa tabelę, a TRUNCATE czyści dane, zostawiając pustą tabelę.Trzeba odróżnić usunięcie tabeli od jej opróżnienia.
TRUNCATE nie usuwa danych „wg warunku” (to robi DELETE ... WHERE) - kasuje WSZYSTKIE wiersze naraz. DROP nie zostawia pustej tabeli, lecz usuwa ją w całości. Różnica: DROP TABLE usuwa tabelę, a TRUNCATE TABLE tylko jej zawartość, zostawiając pustą strukturę.