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)
);
//if you want showCOLUMNS
//SHOW COLUMNS FROM table_name
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'