【MySQL】truncateとdeleteの違いとtruncateの使用方法

データベース

SQLにおいて、truncateとdeleteの違いを紹介します。
またtruncateの使用方法を紹介します。

truncateとdeleteの違い

まず、truncateは、テーブルの切り捨てを意味します。
truncateとdeleteの違いは以下の通りです。

  • truncateは、rollbackで戻すことはできない
  • truncateは、deleteよりも高速
  • truncateは、where句は使用できない
  • truncateは、auto_incrementの値は初期値に戻る

truncateは、where句は使用できないので、すべてのレコードを削除することになります。
また、deleteの場合は、auto_incrementの値は初期値には戻らないのですが、truncateは戻ります。
そして、注意点としては、rollbackを呼んだ場合、deleteの場合は復元できますが、
truncateは復元できませんので、使用には十分注意が必要です。

truncateの使用方法

truncate table データベース名.テーブル名;
truncate データベース名.テーブル名;

tableは省略してもOKです。

上を実行すると、テーブル名に格納されているレコードがすべて削除されます。