USUŃ
- DELETE to polecenie DML.
- Oświadczenie DELETE jest wykonywane przy użyciu blokady wiersza, każdy wiersz w tabeli jest blokowany do usunięcia.
- Możemy określić filtry w klauzuli gdzie
- Usuwa określone dane, jeśli istnieje warunek.
- Usuń aktywuje wyzwalacz, ponieważ operacja jest rejestrowana indywidualnie.
- Wolniej niż przycinać, ponieważ przechowuje logi.
- Wycofanie jest możliwe.
OBCIĄGNIJ
- TRUNCATE to polecenie DDL.
- TRUNCATE TABLE zawsze blokuje tabelę i stronę, ale nie każdy wiersz.
- Nie można użyć warunku Gdzie.
- Usuwa wszystkie dane.
- TRUNCATE TABLE nie może aktywować wyzwalacza, ponieważ operacja nie rejestruje usunięcia pojedynczych wierszy.
- Szybszy pod względem wydajności, ponieważ nie przechowuje żadnych logów.
- Wycofanie jest możliwe.
- DELETE i TRUNCATE mogą zostać wycofane, gdy są używane z TRANSACTION (TRUNCATE można wycofać w SQL Server, ale nie w MySQL).
- jeśli istnieje PK z automatycznym przyrostem, obcięcie zresetuje licznik
http://beginner-sql-tutorial.com/sql-delete-statement .htm