unique設定

ユニークを使った設定

複数のカラムを対象にユニーク設定を行う

// テーブル作成
create table test (id int, name varchar(10), unique(id, name));

// レコード追加
insert into test (id,name) values(1,"test"); // 1レコード目
insert into test (id,name) values(2,"test"); // 2レコード目。nameは1レコード目と同じだがinsertできる
insert into test (id,name) values(1,"test"); // 3レコード目。 idとnameが1レコードと合致するためにエラーでる

プライマリーキーを使った設定(上記のuniqueを使った時と同じような挙動になる)

// テーブル作成
create table test2 (id int, name varchar(10), primary key(id, name));

// レコード追加
mysql> insert into test2 (id,name) values(1,"test");
Query OK, 1 row affected (0.01 sec)

mysql> insert into test2 (id,name) values(2,"test");
Query OK, 1 row affected (0.00 sec)

mysql> insert into test2 (id,name) values(1,"test");
ERROR 1062 (23000): Duplicate entry '1-test' for key 'PRIMARY'