TRUNCATEの基本構文
SQLのTRUNCATE文を使うことで、テーブルを再作成(テーブルごと削除してから再作成)できます。
TRUNCATEの基本構文
TRUNCATE TABLE テーブル名;
本記事では、TRUNCATE 文を用いてテーブルを再作成する方法について解説しています。
TRUNCATE文の書き方
テーブルを再作成する
それでは、TRUNCATE文を用いてテーブルを再作成します。次の例では「item」テーブルを「TRUNCATE」を用いて再作成しています。
■TRUNCATE実施前
> SELECT * FROM item;
+----+-------+-------+----------+
| id | name | price | category |
+----+-------+-------+----------+
| 1 | 商品A | 1980 | 書籍 |
| 2 | 商品B | 4980 | 家具 |
| 3 | 商品C | 7200 | 家具 |
| 4 | 商品D | 500 | 書籍 |
| 5 | 商品E | 1500 | 雑貨 |
+----+-------+-------+----------+
5 rows in set (0.01 sec)
■TRUNCATEの実行例
> TRUNCATE TABLE item;
Query OK, 0 rows affected (16.41 sec)
■TRUNCATE実施後
> SELECT * FROM item;
Empty set (0.00 sec)
TRUNCATE文を実行した結果、「item」テーブルに登録されているレコードはすべて削除され、テーブルが再作成されました。
スポンサーリンク
「TRUNCATE」と「DELETE」の違い
テーブル内のすべてのデータを削除する方法には「TRUNCATE」と「DELETE」があります。
「TRUNCATE」と「DELETE」の違いは次の通りです。
■TRUNCATEの特徴
- テーブルを再作成する
- テーブルを再作成するのでDELETE文よりも高速
- ロールバック(rollback)ができない
- テーブルを再作成するので「AUTO_INCREMENT」の値は初期化される
■DELETEの特徴
テーブルのデータを1つずつ削除する
ロールバック(rollback)できる
データが削除されるだけなので「AUTO_INCREMENT」の値は初期化されない
テーブルのデータをすべて削除する場合は「TRUNCATE」の方が高速です。ただし「TRUNCATE」の場合はロールバック(rollback)ができないので、用途に応じて使い分ける必要があります。
helpful
この記事は役に立ちましたか?