登録されたデータに自動的に連番を格納するには「AUTO_INCREMENT」を使います。
ここでは MySQLコマンド「AUTO_INCREMENT」の具体的な使い方を解説していきます。
目次
「AUTO_INCREMENT」の基本
「AUTO_INCREMENT」は、テーブルの作成時にオートインクリメント(自動採番)を設定したいカラム名の後ろにつけて使います。
CREATE TABLE テーブル名 (カラム名 データ型 AUTO_INCREMENT);
CREATE TABLE 文の詳しい使い方はこちら。
テーブル作成時にカラムにオートインクリメント(自動採番)を設定する
実際にMySQLサーバーに接続し、動作を確認してみましょう。
あらかじめ「shopping」データベースが作られている例で進めていきます。
データベースを作成し、選択するコマンド例
CREATE DATABASE shopping;
USE shopping;
それでは「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」を使って確認できる。