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エディタを開く