2016-12-07 17 views
1

SQL Serverのユニークキーとコンポジットプライマリキーの違いは何ですか? W3C学校によるユニークキーとコンポジットプライマリキーの相違点SQLサーバー

UNIQUE制約は、一意のデータベーステーブル内の各レコードを識別する。

UNIQUE制約とPRIMARY KEY制約は、列または列のセットの一意性を保証します。

PRIMARY KEY制約には、自動的にUNIQUE制約が定義されています。

テーブルごとに多くのUNIQUE制約を設定できますが、テーブルごとにPRIMARY KEY制約は1つしかないことに注意してください。

私たちは、これを使用することにより、複合主キーを作成することができます。

CREATE TABLE Persons 
(
P_Id int NOT NULL, 
LastName varchar(255) NOT NULL, 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255), 
UNIQUE (P_Id) 
) 

を複合主キーの構文について:

CREATE TABLE Persons 
(
P_Id int, 
C_Id int, 
LastName varchar(255) NOT NULL, 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255), 
Primary Key (P_Id,C_Id) 
); 
+0

NULLについてはどうですか? – jarlh

+0

[プライマリキーとユニークキーの違い]の可能な複製(http://stackoverflow.com/questions/9565996/difference-between-primary-key-and-unique-key) – TheGameiswar

答えて

0

あなた自身を言ったように、ユニークで主の唯一の違いをキーは、テーブルに1つのプライマリキーしか存在しないのに対し、よりユニークなキーを持つことができるということです。
さらに、主キーの値をnullにすることはできません。
一意キーと主キーの両方を複数の列(合成キー)で構成することができます。

あなたの例では、P_Id列に一意のキーがあり、その非常に同じ列を含む合成された主キーがありました。
これは意味がありません。
そのP_Id列に単純な主キーのみを作成することをお勧めします。

0

複合キーが複数の列で形成されている

主キーは、同一キー列の値を用いて、そのテーブル上の第2行のを防止します。

プライマリキーは、1つの列と2つ以上の列で構成できます。したがって、主キーは複合キーとして定義することもできます。

4

UNIQUE制約は、データベーステーブルの各レコードを一意に識別します。これにより、列または列のセットの一意性が保証されます。これで1行を定義(ポイント)することができます。

PRIMARY KEYには、デフォルトでUNIQUE制約があります。

一部の表では、行を定義する一意の値を持つ列はありませんが、そのような場合、コンポジットキーが使用されます。このような場合、2つ以上の列が結合され、この組み合わせが一意である。

関連する問題