面試題: 資料庫:delete和trancate刪除表記錄的區別

天道酬勤_xiaodong發表於2020-12-28

delete和trancate刪除表記錄的區別

 首先說相同點,就是他們都能刪除表中的資料,區別有兩點:

  1:

    delete語句在刪除記錄的時候可以有選擇的刪除某些資料(使用where子句),當然,如果不新增where子句,就是刪除所有記錄

    trancete語句則是清空表中所有資料

  2:

    delete:當表中的主鍵是自動增長(auto_increment)時,用delete刪除完資料之後,再往表中插入資料,當資料的主鍵為空,其自動增長時,並不是從1開始

    truncate:而truncate則做了這件事,它不僅將資料全部清空,還將主鍵自增的值初始為1。

  

總的來說可以用一句話區分:

    delete只刪資料,不清痕跡;trancate既刪資料,又清痕跡。

 

補充一點:

              drop為刪除整張表的操作,慎用!

 

相關文章