MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでテーブルをTRUNCATEした後にAUTO_INCREMENTの開始値を任意の値に設定する方法

概要

MySQLでは、テーブルをTRUNCATE(切り捨て)した後、ALTER TABLE文を使うことでAUTO_INCREMENTの開始値を任意の数値に設定できます。本記事では、実際のサンプルコードと実行結果をもとに、その手順をわかりやすく解説します。

1. サンプルテーブルの作成

まず、AUTO_INCREMENT属性を持つカラムを含むテーブルを作成します。

mysql> create table DemoTable825(Value int NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.63 sec)

2. レコードの挿入

INSERTコマンドでレコードを追加します。値を指定しない場合は、AUTO_INCREMENTによって連番が自動的に採番されます。

mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.11 sec)

3. レコードの確認

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable825;

実行結果は以下のとおりです。

+-------+
| Value |
+-------+
| 1 |
| 2 |
| 3 |
+-------+
3 rows in set (0.00 sec)

4. テーブルのTRUNCATE

TRUNCATE TABLE文を実行して、テーブル内の全レコードを削除します。

mysql> truncate table DemoTable825;
Query OK, 0 rows affected (0.58 sec)

なお、TRUNCATEはDELETE文と異なり、AUTO_INCREMENTのカウンタもリセットされるという特徴があります。この性質を利用することで、採番をまっさらな状態からやり直せます。

5. AUTO_INCREMENT値の変更

続いて、ALTER TABLE文を使用してAUTO_INCREMENTの開始値を2000に設定します。

mysql> alter table DemoTable825 auto_increment=2000;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0

6. 変更後の動作確認

もう一度レコードを挿入してみます。

mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.09 sec)

SELECT文で確認すると、以下のように連番が2000から始まっていることがわかります。

+-------+
| Value |
+-------+
| 2000 |
| 2001 |
| 2002 |
+-------+
3 rows in set (0.00 sec)

まとめ

テーブルをTRUNCATEした後に「ALTER TABLE テーブル名 AUTO_INCREMENT = 値;」を実行すれば、AUTO_INCREMENTの開始値を自由に設定できます。テストデータの準備やID採番の調整などに役立つ便利なテクニックなので、ぜひ覚えておきましょう。

  1. MySQLでJSON型カラムにデフォルト値を設定する方法

    MySQLでは、JSON型のカラムにもデフォルト値を設定できます。その場合は、DEFAULT制約を使用します。基本的な構文は以下の通りです。ALTER TABLE テーブル名 MODIFY COLUMN カラム名 JSON NOT NULL DEFAULT ( JSON_OBJECT() );サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。ここでは demo24 というテーブルを作成します。mysql> create table demo24 -> ( -> employee_information text -> ) ->; Query OK,

  2. MySQLのAUTO_INCREMENTとは?自動採番と初期値の設定方法をわかりやすく解説

    AUTO_INCREMENT属性の基本MySQLのAUTO_INCREMENT属性は、新しい行に対して一意の識別子(連番)を自動的に生成するために使用されます。カラムが「NOT NULL」として宣言されている場合、そのカラムにNULLを代入することで、連番のシーケンスを生成することが可能です。AUTO_INCREMENTカラムに任意の値を挿入すると、そのカラムは指定した値に設定され、同時にシーケンスもリセットされます。以降は、挿入された最大値を起点として、連続した値が自動的に生成されていきます。また、既存のAUTO_INCREMENTカラムを更新した場合も、AUTO_INCREMENTのシーケ