SUPPRIMER
- SUPPRIMER est une commande DML.
- L'instruction DELETE est exécutée à l'aide d'un verrou de ligne, chaque ligne de la table est verrouillée pour suppression.
- Nous pouvons spécifier des filtres dans la clause where
- Il supprime les données spécifiées si la condition existe.
- La suppression active un déclencheur, car les opérations sont enregistrées individuellement.
- Plus lent que tronqué, car il conserve les journaux.
- La restauration est possible.
TRUNCATE
- TRUNCATE est une commande DDL.
- TRUNCATE TABLE verrouille toujours le tableau et la page, mais pas chaque ligne.
- Impossible d'utiliser la condition Where.
- Il supprime toutes les données.
- TRUNCATE TABLE ne peut pas activer un déclencheur car l'opération n'enregistre pas les suppressions de lignes individuelles.
- Plus rapide en termes de performances, car il ne conserve aucun journal.
- La restauration est possible.
- DELETE et TRUNCATE peuvent tous deux être annulés lorsqu'ils sont utilisés avec TRANSACTION (TRUNCATE peut être annulé dans SQL Server, mais pas dans MySQL).
- s'il y a un PK avec incrémentation automatique, tronquer réinitialisera le compteur
http://beginner-sql-tutorial.com/sql-delete-statement .htm