Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

AUTO_INCREMENTとは

AUTO_INCREMENTとは、指定したカラム(フィールド)に対してデータが追加されると、MySQLが一意の値を自動的に付与する機能のこと。

カラムに登録されたデータに連番を自動で付ける際に便利です。

AUTO_INCREMENTの使い方・設定方法

AUTO_INCREMENTは、整数か浮動小数点数のデータ型のカラムに対して設定可能です。

また、AUTO_INCREMENTをカラムに設定する際には、PRIMARY KEY(主キー)か、UNIQUE KEY(ユニークキー)を設定します。

AUTO_INCREMENTとPRIMARY KEYを併用して、連番を付けるのが一般的な設定方法です。

ポテパンダの一言メモ

AUTO_INCREMENTとPRIMARY KEYは、テーブルのひとつのカラムにのみ指定可能です。

AUTO_INCREMENTを設定するには、以下のように記述します。

CREATE TABLE テーブル名 (カラム名 データ型 AUTO_INCREMENT);

 

サンプルで「my_table」テーブルを作成し、idカラムにAUTO_INCREMENTを設定しましょう。

mysql> CREATE TABLE my_table (id INT AUTO_INCREMENT, name VARCHAR(10), PRIMARY KEY (id));

テーブルを作成したらデータをひとつ追加してみます。

ここでは、以下のINSERT INTOコマンドでnameにデータを挿入してください。

mysql> INSERT INTO my_table (name) VALUE ('サンプルです');

「SELECT * FROM my_table」でテーブルを確認すると、以下のように表示されるはずです。

mysql> SELECT * FROM my_table;
+----+--------------------+
| id | name               |
+----+--------------------+
|  1 | サンプルです         |
+----+--------------------+
1 row in set (0.00 sec)

idに値を指定しなくても自動で「1」が追加されています。

AUTO_INCREMENTの初期値を設定する方法

先ほどのサンプルように、AUTO_INCREMENTは基本的に1から連番が振られていきます。

しかし、中には1以外の値から連番を振りたい時もあるでしょう。

AUTO_INCREMENTの値を指定するには、以下のように記述します。

CREATE TABLE テーブル名 (カラム名 データ型 AUTO_INCREMENT) AUTO_INCREMENT = 値;

phpMyAdminからAUTO_INCREMENTを設定する方法

phpMyAdminでAUTO_INCREMENTを設定する手順は以下の通りです。

  1. データベースからテーブルを選択
  2. 「Structure」タブを選択し、AUTO_INCREMENTを設定したいカラムを選択
  3. 右の方にある「A_I」にチェックを入れて保存

mysql_auto_increment_phpmyadmin

AUTO_INCREMENTの値を変更する方法

AUTO_INCREMENTの値を変更するには、以下のように記述します。

ALTER TABLE テーブル名 AUTO_INCREMENT = 値;

先ほど作成したmy_tableのidの値を50に変更してみましょう。

mysql> ALTER TABLE my_table AUTO_INCREMENT=50;
mysql> INSERT INTO my_table (name) VALUE ('id=50です');

「SELECT * FROM my_table」でテーブルを確認すると、以下のように表示されるはずです。

mysql> SELECT * FROM my_table;
+----+--------------------+
| id | name               |
+----+--------------------+
|  1 | サンプルです         |
| 50 | id=50です           |
+----+--------------------+
2 rows in set (0.00 sec)

AUTO_INCREMENTのカラムを変更する方法

今はidカラムにAUTO_INCREMENTを設定していますが、別のカラムにAUTO_INCREMENTを設定し直したい場合もあるでしょう。

次に、AUTO_INCREMENTのカラムを変更する方法を解説します。

まずは、先ほどとは別に「new_id」が追加されたテーブルを用意しましょう。

ここでは「id」から「new_id」にAUTO_INCREMENTを変更します。

mysql> CREATE TABLE my_table2 (id INT AUTO_INCREMENT, new_id INT, name VARCHAR(10), PRIMARY KEY (id));

まずは、CHANGEコマンドでidのAUTO_INCREMENTを解除しましょう。

mysql> ALTER TABLE my_table2 CHANGE id id INT NOT NULL;

AUTO_INCREMENTを解除したら、PRIMARY KEYも解除します。

mysql> ALTER TABLE my_table2 DROP PRIMARY KEY;

最後に、新しく「new_id」にPRIMARY KEYとAUTO_INCREMENTを設定します。

mysql> ALTER TABLE my_table2 ADD PRIMARY KEY (new_id);
mysql> ALTER TABLE my_table2 CHANGE new_id new_id INT AUTO_INCREMENT;

これで、AUTO_INCREMENTのカラムを変更できました。

この状態でカラムを確認すると、以下のように表示されるはずです。

mysql> SHOW COLUMNS FROM my_table2;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int         | NO   |     | NULL    |                |
| new_id | int         | NO   | PRI | NULL    | auto_increment |
| name   | varchar(10) | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

AUTO_INCREMENTを追加(insert)する方法

作成済みのテーブルのカラムにAUTO_INCREMENTを追加したい場合は、変更する方法と同じようにPRIMARY KEYとAUTO_INCREMENTを設定すればOKです。

ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名);
ALTER TABLE テーブル名 CHANGE カラム名 カラム名 データ型 AUTO_INCREMENT;

AUTO_INCREMENTを削除する方法

AUTO_INCREMENTを削除したい場合も、変更する方法と同じようにPRIMARY KEYとAUTO_INCREMENTを解除します。

ALTER TABLE テーブル名 CHANGE カラム名 カラム名 データ型 NOT NULL;
ALTER TABLE テーブル名 DROP PRIMARY KEY;

まとめ

MySQLのAUTO_INCREMENTの設定や追加、変更方法などを解説しました。

AUTO_INCREMENTは自動で採番してくれ、使いこなせば非常に便利な機能です。

ぜひこの記事を参考に、AUTO_INCREMENTの使い方をマスターしてください!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。