TRUNCATEとは? DELETE文との違い

TRUNCATE

すべてのデータを削除するときdelete文を使用すると時間がかかった経験はありませんか?今回はdelete文の代わりとして使用するTRUNCATE文のメリットとデメリットを学んでいきましょう。

今回はTRUNCATE文のメリットとデメリットについてお勉強しましょう!

目次

TRUNCATE文とDELETE文

TRUNCATEとDELETEの違いは何でしょうか?今回は2つの違いについてお勉強しましょう。

TRUNCATEとは?

TRUNCATEとはテーブルのすべてのデータを削除するコマンドです。
構文は次のようになります。

TRUNCATE [TABLE] table_name

例として、penchanというテーブル名のデータをすべて削除したい場合は次のように書きます。

TRUNCATE TABLE penchan

DELETE文とは?

DELETE文もテーブルのデータを削除するコマンドです。
構文は次のようになります。

DELETE FROM table_name [WHERE 条件]

例として、penchanというテーブル名のデータをすべて削除したい場合は次のように書きます。

DELETE FROM penchan

TRUNCATEとDELETEの違いは?

DELETE文で条件を指定しない場合と、TRUNCATEでは同じことができます。
しかしDELETE文ではデータを1レコードずつ削除するのに対して、TRUNCATE文はテーブルを削除して改めてテーブルが作成されます。TRUNCATEを使うメリットとデメリットは以下のようになります。

TRUNCATEのメリット

  • データが多い場合には高速

TRUNCATEのデメリット

  • ロールバックができない

TRUNCATE文はデータ量の多いテーブルのすべてのデータを消したい&ロールバックはしない場合に使用しましょう。

まとめ

TRUNCATEとDELETE文についてまとめると以下のようになります。

TRUNCATEとDELETE文の比較

  • DELETE文⇒データを1レコードずつ削除する
  • TRUNCATE文⇒テーブルを削除して再作成する

今回はTRUNCATE文のメリットとデメリットについてお勉強しました!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次