TRUNCATE 構文

TRUNCATE [TABLE] tbl_name

TRUNCATE TABLE はテーブルを完全に空にします。論理的には、これは全ての行を削除する DELETE ステートメントと同等ですが、いくつかの条件下では、違いがあります。

もしテーブルを参照する外部キー制約があれば、InnoDB テーブルに対しては、TRUNCATE TABLEDELETE にマップされ、そうでなければ、高速切断(テーブルのドロップと再作成)が利用されます。外部キー制約の有無に関わらず、AUTO_INCREMENT カウンタが TRUNCATE TABLE によってリセットされます。

その他のストレージ エンジンに対しては、MySQL 5.1 の中では次のような方法で、TRUNCATE TABLEDELETE が異なっています。

TRUNCATE TABLE は、MySQL 5.1.16 以降から DROP 権限を必要とします。(5.1.16 以前では DELETE 権限を必要としています。

TRUNCATE TABLE は MySQL に導入されたオラクル SQL 拡張子です。