テーブルのデータを削除する方法として「DELETE」コマンドと「TRUNCATE TABLE」コマンドの2つがあります。
両者を使用する場合、どのような用途で使用するべきか違いについてまとめておきます。
DELETE文
- DELETEはTABLEのレコードを行単位で削除する事も可能。
- DELETEはデータ削除のみ実施するだけでで「AUTO_INCREMENT」の値は初期化しません。
- DELETE後にROLLBACK可能
1 |
DELETE FROM sample_table; |
TRUNCATE文
- TRUNCATEはTABLEをDROP後にCREATEする為、行単位での削除は不可能。
- TRUNCATEは「AUTO_INCREMENT」が設定されている場合は値が初期化されます。
- TRUNCATE後にROLLBACKは不可能。
- DELETEより高速。
1 |
TRUNCATE TABLE sample_table; |