Explaining DELETE vs DROP vs TRUNCATE in SQL
Pavol Z. Kutaj

Pavol Z. Kutaj @pkutaj

About: A public interface of my current learnings. The focus is on everything from vim, python to cloud. Imperfect. Impersonal. Never too far from my terminal.

Location:
Brno, Czech Republic
Joined:
Jan 26, 2021

Explaining DELETE vs DROP vs TRUNCATE in SQL

Publish Date: Jan 15
0 0

The aim of this page📝 is to explain a difference between three similar clauses in SQL: DELETE FROM vs TRUNCATE TABLE vs DROP TABLE. A simple one, but essential.

DELETE FROM

  • You should be able to undo this
  • Deletes one row at a time
  • Logs each row in the transaction log
  • LSN (log sequence number) is kept, too
  • Supports WHERE clause for selective row deletion
DELETE FROM <table>
DELETE FROM books -- all has been dropped
DELETE FROM books WHERE author = 'Smith' -- only Smith's books deleted
Enter fullscreen mode Exit fullscreen mode

TRUNCATE TABLE

TRUNCATE TABLE 'foo.bar'
Enter fullscreen mode Exit fullscreen mode

DROP TABLE

  • Removes the entire table structure and all data
  • Cannot be rolled back (most DBMS)
  • Removes table definition from database schema
  • Frees all space associated with the table
DROP TABLE tablename;
DROP TABLE IF EXISTS tablename;
Enter fullscreen mode Exit fullscreen mode

LINKS

https://www.mssqltips.com/sqlservertip/1080/deleting-data-in-sql-server-with-truncate-vs-delete-commands/

Comments 0 total

    Add comment