TRUNCATE文とは?データベース操作の基本概念をわかりやすく解説
データベースにおいて、テーブル内のデータを削除する方法には、DELETE文とTRUNCATE文の2種類があります。DELETE文はレコードを1件ずつ削除するため、大量のデータを削除する場合には処理時間がかかってしまいます。
ここで登場するのがTRUNCATE文です。TRUNCATE文はテーブル内の全てのレコードを一度に取り除くため、DELETE文よりも高速に大量のデータを削除することができます。
TRUNCATE文の基本構文
TRUNCATE文の基本構文は以下の通りです。
“`
TRUNCATE TABLE テーブル名;
“`
このように、TRUNCATE TABLEに続いて、削除対象となるテーブル名を指定します。また、TRUNCATE文を使用するには、データベース内でのテーブルの削除権限が必要になりますので、注意が必要です。
TRUNCATE文の注意点
TRUNCATE文を使用する際には、以下のような注意点があります。
- データの復元ができない
- トリガーは実行されない
- 自動増分列のリセット
TRUNCATE文を使用して削除したデータは完全に消去されるため、復元することができません。誤ってTRUNCATE文を使用すると、大量のデータが意図しない形で失われてしまう可能性があるため、注意が必要です。
TRUNCATE文によってテーブル内のデータが削除された場合、そのテーブルに紐づくトリガーは実行されません。トリガーを使用している場合は、削除処理前にトリガーの実行可否を確認してから、TRUNCATE文を実行するようにしましょう。
テーブル内に自動増分列が設定されている場合、TRUNCATE文によってテーブル内のデータが削除されると、自動増分列の値がリセットされてしまいます。これによって、データの整合性が保たれなくなる場合があるため、自動増分列を使用している場合は、TRUNCATE文を実行する前に値のバックアップを取るようにしましょう。
まとめ
TRUNCATE文は、テーブル内の全データを一度に削除するため、DELETE文よりも高速に多量のデータを削除できることが特長です。ただし、データの復元ができないこと、トリガーが実行されないこと、自動増分列のリセットが起こることに注意が必要です。