ここでは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 = 'テーブル名'
;