データベース設計

【SQL入門】TRUNCATEの使い方(テーブル再作成)

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 | 雑貨     |
+----+-------+-------+----------+

■TRUNCATEの実行例

> TRUNCATE TABLE item;

TRUNCATE文を実行した結果、「item」テーブルに登録されているレコードはすべて削除され、テーブルが再作成されます。

「TRUNCATE」と「DELETE」の違い

テーブル内のすべてのデータを削除する方法には「TRUNCATE」と「DETELE」があります。

■TRUNCATEの特徴

  • テーブルを再作成する
  • テーブルを再作成するのでDELETE文よりも高速
  • ロールバック(rollback)ができない
  • テーブルを再作成するので「AUTO_INCREMENT」の値は初期化される

■DELETEの特徴

  • テーブルのデータを1つずつ削除する
  • ロールバック(rollback)できる
  • データが削除されるだけなので「AUTO_INCREMENT」の値は初期化されない

テーブルのデータをすべて削除する場合は「TRUNCATE」の方が高速です。
ただし「TRUNCATE」の場合はロールバック(rollback)ができないので、用途に応じて使い分ける必要があります。

学習書の紹介

SQL 第2版 ゼロからはじめるデータベース操作

大好評のSQL定番入門書が改訂! SQLの書き方からアプリでの利用までしっかり学ぼう!

プログラミング学習シリーズ『SQL ゼロからはじめるデータベース操作』は、「データベースやSQLがはじめて」という初心者を対象に、プロのデータベース(DB)エンジニアである著者がSQLの基礎とコツをやさしく丁寧に教える入門書です。

-データベース設計