MySQLでPRIMARY KEYを作る – AUTO_INCREMENT

説明

備忘録的なものとして書きます。実装は参考ページのコピペですが。

DBを設計するときには、ユニークな一意なデータであることを証明するためのカラムを作らなければなりません。つまりプライマリーキーです。MySQLではテーブルを作るときにPRIMARY KEY (id)と入力すれば、そのカラムはプライマリーキーになり、カラムの値は絶対に被ったりしなくなります。更にAUTO_INCREMENTを指定することにより(下記のテーブル設計の場合)idカラムを指定せずにデータをインサートした場合は自動的にintがインクリメントされていく仕様にすることができます

実装

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
);

INSERT INTO animals (name) VALUES
    ('dog'),('cat'),('penguin'),
    ('lax'),('whale'),('ostrich');

SELECT * FROM animals;
+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
|  6 | ostrich |
+----+---------+

試しにプライマリーキーを被らせてみる

ちゃんとエラーになる

insert into animals
(
name, 
id
) 
values
(
"cacat",
2
);

ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY'

参考

AUTO_INCREMENT の使用