RADERA
- DELETE är ett DML-kommando.
- DELETE-satsen körs med ett radlås, varje rad i tabellen är låst för radering.
- Vi kan ange filter i where-satsen
- Den raderar specificerad data om villkoret finns.
- Ta bort aktiverar en utlösare eftersom operationen loggas individuellt.
- Långsammare än att trunkera eftersom den håller loggar.
- Återställning är möjlig.
TRUNCATE
- TRUNCATE är ett DDL-kommando.
- TRUNCATE TABLE låser alltid tabellen och sidan men inte varje rad.
- Kan inte använda Where Condition.
- Den tar bort all data.
- TRUNCATE TABLE kan inte aktivera en utlösare eftersom operationen inte loggar borttagningar av enskilda rader.
- Snabbare prestandamässigt, eftersom den inte för några loggar.
- Återställning är möjlig.
- DELETE och TRUNCATE kan båda återställas när de används med TRANSACTION (TRUNCATE kan återställas i SQL Server, men inte i MySQL).
- om det finns en PK med automatisk ökning, trunkering kommer att återställa räknaren
http://beginner-sql-tutorial.com/sql-delete-statement .htm