【MySQL】オートインクリメント(自動採番)を設定する(auto_increment の使い方)

登録されたデータに自動的に連番を格納するには「AUTO_INCREMENT」を使います。

ここでは MySQLコマンド「AUTO_INCREMENT」の具体的な使い方を解説していきます。

 

「AUTO_INCREMENT」の基本

「AUTO_INCREMENT」は、テーブルの作成時にオートインクリメント(自動採番)を設定したいカラム名の後ろにつけて使います。

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

CREATE TABLE 文の詳しい使い方はこちら

 

テーブル作成時にカラムにオートインクリメント(自動採番)を設定する

実際にMySQLサーバーに接続し、動作を確認してみましょう。

 

あらかじめ「shopping」データベースが作られている例で進めていきます。

データベースを作成し、選択するコマンド例

CREATE DATABASE shopping;
USE shopping;
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

 

それでは「items」テーブルを作成し、「id」カラムにオートインクリメント(自動採番)を設定してみましょう。コマンドは以下。

CREATE TABLE items (id INT AUTO_INCREMENT, name VARCHAR(100), PRIMARY KEY (id));
メモ

AUTO_INCREMENT を設定するカラムは、主キー(PRIMARY KEY)か、ユニークキー(UNIQUE KEY)である必要があります。

主キー(PRIMARY KEY)やユニークキー(UNIQUE KEY)について詳しくはこちら(作成中)。

 

次に作成したテーブルに、以下のコマンドでデータを追加してみます。

INSERT INTO items (name) VALUES ('牛乳');
メモ

INSERT INTO 文の詳しい使い方はこちら

 

以下のコマンドで、追加したデータを確認してみます。

SELECT * FROM items;
メモ

SELECT 文の詳しい使い方はこちら

 

「id」カラムには、自動的に 1 が設定されていることが確認できます。

 

以下のコマンドで、さらにデータを追加してみます。

INSERT INTO items (name) VALUES ('パン');

 

すると今度は、「id」カラムに自動的に 2 が設定されてデータが追加されていることが確認できます。

 

このようにデータが追加されるたびに、AUTO_INCREMENT を設定したカラムには連番が保存されるようになります。

 

カラムに AUTO_INCREMENT が設定されているかどうかを確認する

今度はカラムに AUTO_INCREMENT が設定されているかどうかを確認してみましょう。

 

以下のコマンドで「items」テーブルの内容を確認できます。

DESC items;
メモ

DESC の詳しい使い方はこちら

 

コマンドの実行結果は以下。「id」カラムの「Extra」の項目を見ると、auto_increment が設定されていることが確認できます。

 

ここまでが「AUTO_INCREMENT」の基本!

理解をさらに深めたい方は以下からの内容もご覧ください。

 

AUTO_INCREMENT が設定してあるカラムで次に代入する値を変更する

AUTO_INCREMENT が設定してあるカラムで次に代入する値を変更したい場合は、以下のコマンドを使います。

ALTER TABLE テーブル名 AUTO_INCREMENT = 数値;

 

「items」テーブルの AUTO_INCREMENT の値を 10 にするコマンド例

ALTER TABLE items AUTO_INCREMENT = 10;

これで以降は10から連番でデータが保存されるようになります。

 

AUTO_INCREMENT が設定してあるカラムで次に代入される値を確認する

AUTO_INCREMENT の値はテーブルごとに管理されています。

以下のコマンドで、指定したテーブルの AUTO_INCREMENT の値を確認できます。

SHOW TABLE STATUS WHERE name = "テーブル名"\G

 

例えば以下は、「items」テーブルの AUTO_INCREMENT の値を確認するコマンド例。

SHOW TABLE STATUS WHERE name = "items"\G

 

実行結果は以下のようになります。この場合は、次に新しくデータを挿入したときに、AUTO_INCREMENT が設定してあるカラムには 12 が入ります。

 

まとめ

以上、MySQLコマンド「AUTO_INCREMENT」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「AUTO_INCREMENT」でカラムに自動的に連番を格納することができる。
  • カラムに AUTO_INCREMENT が設定されているかどうかは「DESC」を使って確認できる。