MySQL

AUTO_INCREMENT

新規行の追加時に自動で連番を振る属性

解説

ユーザーIDや注文IDなど、新しいデータを追加(INSERT)するたびに「1, 2, 3...」と自動的に番号を増やしたい場合に利用するMySQL特有の属性です。

この属性を付与すると値が自動採番されます。ただし、AUTO_INCREMENT 自体が一意性制約を意味するわけではないため、ID列では通常 PRIMARY KEY や UNIQUE と組み合わせて使用します。

使い方と注意点

データを挿入する際、AUTO_INCREMENT が設定されたカラムに対しては、値を指定しないか NULL を渡すことで、自動的に次の番号が割り当てられます。

他のRDBMSとの違い

  • PostgreSQL: 従来は SERIAL という擬似型が使われていましたが、現在は標準SQLの GENERATED ALWAYS AS IDENTITY が推奨されています。
  • Oracle DB: バージョン12c以降から IDENTITY 列がサポートされました。
  • SQLite: INTEGER PRIMARY KEY と指定するだけで自動採番になります。
構文
カラム名 データ型 AUTO_INCREMENT PRIMARY KEY
具体例
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
);

この構文を実際に書いて試してみませんか?

SQLエディタを開く