Mysql
 sql >> Database >  >> RDS >> Mysql

confronto tra troncare e eliminare in mysql/sqlserver

ELIMINA

  1. DELETE è un comando DML.
  2. L'istruzione DELETE viene eseguita utilizzando un blocco riga, ogni riga nella tabella è bloccata per l'eliminazione.
  3. Possiamo specificare filtri nella clausola where
  4. Elimina i dati specificati se esiste la condizione.
  5. Elimina attiva un trigger perché l'operazione viene registrata individualmente.
  6. Più lento di troncare perché mantiene i log.
  7. Il rollback è possibile.

TRONCA

  1. TRUNCATE è un comando DDL.
  2. TRUNCATE TABLE blocca sempre la tabella e la pagina ma non ogni riga.
  3. Impossibile utilizzare Where Condition.
  4. Rimuove tutti i dati.
  5. TRUNCATE TABLE non può attivare un trigger perché l'operazione non registra le eliminazioni di singole righe.
  6. Più veloce in termini di prestazioni, perché non conserva alcun registro.
  7. Il rollback è possibile.


  • È possibile eseguire il rollback di DELETE e TRUNCATE se utilizzati con TRANSACTION (il rollback di TRUNCATE può essere eseguito in SQL Server, ma non in MySQL).
  • se è presente una PK con incremento automatico, tronca azzera il contatore

http://beginner-sql-tutorial.com/sql-delete-statement .htm