MySQL,AUTO_INCREMENTの値を初期化する

スポンサーリンク

鍛錬 960

MySQL,AUTO_INCREMENTの値を初期化する

AUTO_INCREMENT を使用すると、データを1ずつ増加させながら連続した値を自動的に入力することができますが、入力される値を初期化(リセット)するには、ALTER TABLE を使用します。
 
使用方法は、以下に示す通りです。

ALTER TABLE テーブル名 AUTO_INCREMENT=値;
スポンサーリンク

実行結果

以下は、カラム id に AUTO_INCREMENT が設定されているテーブル fruits です。

今回はこのテーブル fruits のデータを一度削除し、再度データを入力して AUTO_INCREMENT のデータが初期化されることを確認します。

テーブル「fruits」

id
(AUTO_INCREMENT)
(PRIMARY KEY)
name price
1 apple 250
2 orange 300
3 grape 500

テーブルのデータを削除

以下は、DELETE を使用してテーブル fruits のデータを削除しています。

mysql> 
mysql> select * from fruits;
+----+--------+-------+
| id | name   | price |
+----+--------+-------+
|  1 | apple  |   250 |
|  2 | orange |   300 |
|  3 | grape  |   500 |
+----+--------+-------+
3 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> delete from fruits;
Query OK, 3 rows affected (0.01 sec)

mysql> 
mysql> 
mysql> select * from fruits;
Empty set (0.00 sec)

 
上記に示した通り、テーブル fruits のデータが全て削除されました。

初期化せずにデータを入力する

以下は、全てのデータを削除したテーブル fruits にデータを入力しています。

mysql> 
mysql> insert into fruits (name, price) values ('apple', 250);
Query OK, 1 row affected (0.00 sec)

mysql> 
mysql> 
mysql> select * from fruits;
+----+-------+-------+
| id | name  | price |
+----+-------+-------+
|  4 | apple |   250 |
+----+-------+-------+
1 row in set (0.00 sec)

 
上記に示した通り、新しくデータを入力するとカラム id の値が 4 から始まっています。

これは、データを削除する前にカラム id の最後尾に格納されていた値が 3 であったためです。

初期化してデータを入力する

以下は、再度テーブル fruits のデータを全て削除した後、AUTO_INCREMENT の値を 1 から始めるように初期化しています。

初期化後、データを入力してカラム id の値が 1 から開始されることを確認しています。

mysql> 
mysql> select * from fruits;
+----+-------+-------+
| id | name  | price |
+----+-------+-------+
|  4 | apple |   250 |
+----+-------+-------+
1 row in set (0.00 sec)

mysql> 
mysql> 
mysql> delete from fruits;
Query OK, 1 row affected (0.00 sec)

mysql> 
mysql> 
mysql> alter table fruits auto_increment=1;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> 
mysql> 
mysql> insert into fruits (name, price) values ('apple', 250);
Query OK, 1 row affected (0.00 sec)

mysql> 
mysql> 
mysql> select * from fruits;
+----+-------+-------+
| id | name  | price |
+----+-------+-------+
|  1 | apple |   250 |
+----+-------+-------+
1 row in set (0.00 sec)

 
上記に示した通り、AUTO_INCREMENT の値を初期化することができました。

タイトルとURLをコピーしました