【MySQL】シーケンスを簡単に設定する方法


ここではMySQLで、シーケンス(連番を自動で採番)を簡単に設定する方法を紹介しています。

シーケンスを簡単に設定する方法

シーケンスを簡単に設定するには、AUTO_INCREMENTという機能を利用します。

AUTO_INCREMENTを列に設定することで、連続した正の整数を自動で採番することが出来ます。

シーケンスを列に定義する方法

AUTO_INCREMENTはテーブル定義で次のように設定しておきます。

AUTO_INCREMENTを設定する列にはINDEXを作成する必要があります。ここではPRIMARY KEYを設定しています。

また、AUTO_INCREMENTは1つのテーブルに、1 つのカラムのみ作成することが出来ます。

CREATE TABLE tab1(
 col1 INT AUTO_INCREMENT PRIMARY KEY 
 ,col2 varchar(10)
 );

シーケンス列に値を登録する方法

AUTO_INCREMENTを設定した列にデータを登録します。

INSERTする際、AUTO_INCREMENTを設定した列の値を省略することが出来ます。

ここでは1,2,3という値が自動で採番されたことが分かりました。

mysql> INSERT INTO tab1(col2) VALUES('XXXX1');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tab1(col2) VALUES('XXXX2');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tab1(col2) VALUES('XXXX3');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM tab1;
+------+-------+
| col1 | col2  |
+------+-------+
|    1 | XXXX1 |
|    2 | XXXX2 |
|    3 | XXXX3 |
+------+-------+
3 rows in set (0.00 sec)

シーケンスの値を確認する方法

AUTO_INCREMENTで次に採番される値はINFORMATION_SCHEMA.TABLESで確認することが出来ます。

SELECT
 AUTO_INCREMENT
FROM
 INFORMATION_SCHEMA.TABLES
WHERE
 TABLE_SCHEMA = 'データベース名'
 AND TABLE_NAME = 'テーブル名'
;