概要:このチュートリアルでは、MySQL TRUNCATE TABLE 文を使用してテーブル内のすべてのデータを削除する方法について説明します。
MySQLのTRUNCATE TABLEステートメントの紹介
MySQLのTRUNCATE TABLEステートメントは、テーブルのすべてのデータを削除することができます。
論理的には、TRUNCATE TABLEステートメントは、テーブルからすべての行を削除するWHERE句のないDELETEステートメント、またはDROP TABLEとCREATE TABLEステートメントの一連のように使用されます。
ただし、TRUNCATE TABLE文は行を1つずつ削除するのではなく、テーブルを削除して再作成するので、DELETE文よりも効率的です。
以下はTRUNCATE TABLE文の基本構文です。
Code language: SQL (Structured Query Language) (sql)
この構文では、TRUNCATE TABLEキーワードの後にすべてのデータを削除したいテーブルの名前を指定します。
TABLEキーワードは省略可能です。 
切り捨てるテーブルを参照する他のテーブルからFOREIGN KEY制約がある場合、TRUNCATE TABLE文は失敗します。
切り捨て操作は暗黙のコミットを引き起こすため、ロールバックできません。
テーブルにAUTO_INCREMENT列がある場合、TRUNCATE TABLEステートメントはAUTO_INCREMENT列の値を開始値にリセットします。
TRUNCATE TABLEステートメントは、切り捨てられるテーブルと関連付けられたDELETEトリガーを起動しません。
DELETEステートメントとは異なり、TRUNCATE TABLEステートメントによって影響を受ける行数は0であり、これは情報がないものとして解釈されるべきです。
MySQL TRUNCATE TABLEの例
TRUNCATE TABLE 文の使用例を見てみましょう。
まず、デモ用にbooksという名前の新しいテーブルを作成します:
Code language: SQL (Structured Query Language) (sql)
次に、次のストアドプロシージャを使ってbooksテーブルにダミーデータを挿入します:
Code language: SQL (Structured Query Language) (sql)
次に、booksテーブルに1万行をロードしてください。 
Code language: SQL (Structured Query Language) (sql)
その後、booksテーブルのデータを確認します。
Code language: SQL (Structured Query Language) (sql)
最後に、TRUNCATE TABLEステートメントを使用してbooksテーブルからすべての行を削除してください。
このチュートリアルでは、MySQL TRUNCATE TABLE ステートメントを使用して、特に大きなテーブルからすべてのデータを効率的に削除する方法について学びました。  
このチュートリアルは役に立ちましたか。