Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

DELETE kontra TRUNCATE - i podsumowanie

Poznałeś już trzy wielkie rozkazy skryby. Na koniec porównajmy

DELETE
z jego szybszym kuzynem -
TRUNCATE
.

DELETE - precyzyjny skalpel

DELETE
usuwa wiersze wybiórczo, zgodnie z
WHERE
. Może usunąć jeden wiersz, kilka albo (bez
WHERE
) wszystkie - usuwając je jeden po drugim:

1DELETE FROM wypozyczenia WHERE id = 3;

TRUNCATE - czyszczenie całego regału

TRUNCATE
opróżnia całą tabelę za jednym ruchem - jest jak zrzucenie wszystkich zwojów z regału naraz:

1TRUNCATE TABLE wypozyczenia;

Różnice względem

DELETE
:

  • Czyści całą tabelę - nie przyjmuje
    WHERE
    .
  • Jest szybszy dla dużych tabel - nie usuwa wiersz po wierszu.
  • Resetuje AUTO_INCREMENT - licznik
    id
    wraca do 1, jakby regał był nowy.

| Cecha | DELETE | TRUNCATE | |-------|--------|----------| | Wybór wierszy (WHERE) | tak | nie | | Szybkość na dużych tabelach | wolniejszy | szybszy | | Reset AUTO_INCREMENT | nie | tak |

Krótkie przypomnienie

DELETE
to skalpel,
TRUNCATE
to miotła. Oba opróżniają regały, ale
TRUNCATE
robi to za jednym ruchem i zaczyna numerację
id
od nowa. To pierwszy krok - w kolejnych lokacjach jeszcze nie raz wrócimy do tego porównania.

Przejdź do CodeWorlds