SQL - TRUNCATE TABLE Izjave


Uklanjanje podataka tabele

Izjava TRUNCATE TABLE uklanja sve redove iz tabele brže nego DELETE. Logično je da je TRUNCATE TABLE slična izrazu DELETE bez klauzule WHERE. Izjava TRUNCATE TABLE uklanja sve redove iz tabele, ali struktura tabele i njeni kolone, ograničenja, indeksi i slično ostaju netaknuti. Da biste uklonili definiciju tabele pored njenih podataka, možete upotrijebiti izraz DROP TABLE.



Sintaksa

Osnovna sintaksa TRUNCATE TABLE može se napisati kao:

TRUNCATE TABLE table_name;

Izvedimo operaciju skraćenja na tabeli baze podataka. Uzmite u obzir da u našoj bazi podataka imamo tabelu zaposlenih sa sljedećim zapisima:



Sljedeća naredba uklanja sve redove iz tabele zaposlenih:

TRUNCATE TABLE employees;

Nakon izvršenja gornje SQL izjave, ako pokušate odabrati zapise iz tabele zaposlenih, dobit ćete prazan skup rezultata.



TRUNCATE TABLE vs DELETE

Iako se čini da DELETE i TRUNCATE TABLE imaju isti efekt, ali djeluju drugačije. Evo nekoliko glavnih razlika između ove dvije izjave:

  • Izjava TRUNCATE TABLE ispušta i ponovo kreirajte tabelu na bilo koji način vrijednost automatskog povećanja vraća se na početnu vrijednost koja je obično 1.

  • DELETE vam omogućuje filtriranje redova koji se brišu na osnovu neobavezne klauzule WHERE, dok TRUNCATE TABLE ne podržava WHERE klauzulu, samo uklanja sve redove.

  • TRUNCATE TABLE je brži i koristi manje sistemskih resursa nego DELETE, jer DELETE skenira tabelu kako bi generisao broj redova koji su bili pogođeni, zatim obrišite redove jedan po jedan i bilježi unos u dnevnik baze podataka za svaki izbrisani red, dok TRUNCATE TABLE samo izbrišite sve redove bez pružanja dodatnih informacija.