MySQL 速習チュートリアル

MySQL AUTO_INCREMENT フィールド

1. MySQL AUTO_INCREMENT フィールドの概要

オートインクリメント(Auto-increment)フィールドは、テーブルに新しいレコードが挿入されるたびに、一意の数値を自動的に生成する数値カラムです。

通常、新しいレコードが挿入されるたびに重複しない番号を自動的に割り当てたい PRIMARY KEY(プライマリキー)フィールドに対して、このオートインクリメント設定を適用します。

2. AUTO_INCREMENT キーワード

MySQL では、オートインクリメント機能を実現するために AUTO_INCREMENT キーワードを使用します。

以下の SQL は、"Persons" テーブルの "Personid" カラムを、オートインクリメントが適用されたプライマリキーとして定義する例です。

実行例

/* Personid を自動採番のプライマリキーとして設定してテーブルを作成 */
CREATE TABLE Persons (
    Personid int AUTO_INCREMENT PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

3. 開始値の変更

AUTO_INCREMENT のデフォルトの開始値は 1 であり、新しいレコードが追加されるたびに 1 ずつ増加します。

開始値を 1 以外の数値から始めたい場合は、以下の SQL ステートメントを使用してテーブル定義を変更します。

実行例

/* オートインクリメントの開始値を 100 に変更する */
ALTER TABLE Persons AUTO_INCREMENT = 100;

4. レコード挿入時の挙動

"Persons" テーブルに新しいレコードを挿入する際、"Personid" カラムの値を明示的に指定する必要はありません。システムが一意の値を自動的に補完します。

実行例

/* Personid を指定せずにレコードを挿入(自動的に次のユニークな番号が割り当てられる) */
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');

上記の SQL を実行すると、"Persons" テーブルに新しいレコードが挿入され、"Personid" カラムには自動的に次の未使用の数値が割り当てられます。