概要:このチュートリアルでは、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
ステートメントを使用して、特に大きなテーブルからすべてのデータを効率的に削除する方法について学びました。
このチュートリアルは役に立ちましたか。