MySQLで主キーとユニークキーの違いは次のとおりです:
主キー
主キーとは、テーブル内の各行を一意に識別するために使用されるカラムまたはカラムの組み合わせで、NULL値を許可しません。
テーブル内には1つの主キーしか持てません。
主キーを定義すると、そのカラムまたはカラムの組み合わせにインデックスが自動的に作成されます。
//id は主キーとして定義されます
CREATE TABLE my_table (
id INT PRIMARY KEY,
name VARCHAR(50)
);
ユニークキー
一方、ユニークキーは、重複した値を許可しないカラムまたはカラムの組み合わせです。
ユニークキーを定義することで、テーブル内の値が一意であることを保証することができます。
ただし、NULL値は複数回登録できます。テーブル内には複数のユニークキーを持つことができます。
//ユニークキーは、nameフィールドで定義され
CREATE TABLE my_table (
id INT,
name VARCHAR(50),
UNIQUE KEY uk_name (name)
);
まとめ
つまり、主キーはテーブル内の各行を一意に識別するために使用され、ユニークキーは値の重複を許さないことを保証するために使用されます。
コメント