最新のWeb開発のチュートリアル
 

SQL PRIMARY KEY制約


SQL PRIMARY KEY制約

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

主キーは一意の値が含まれている必要があります。

主キー列はNULL値を含めることはできません。

ほとんどのテーブルは主キーを持っている必要があり、各テーブルには1つのプライマリキーを持つことができます。


CREATE TABLE上のSQL PRIMARY KEY制約

次のSQLは、上のPRIMARY KEY作成"P_Id"とき列を"Persons"テーブルが作成されます。

MySQL:

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

SQL Server / Oracle / MS Access:

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

PRIMARY KEY制約のネーミングを可能にし、複数の列にPRIMARY KEY制約を定義するために、次のSQL構文を使用します。

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

Note:上記の例では1つだけPRIMARY KEY(pk_PersonID)があります。 しかし、主キーの値を求めるには、2つCOLUMNS(P_ID +姓)で構成されています。


ALTER TABLE上のSQL PRIMARY KEY制約

PRIMARY KEY制約を作成するには"P_Id"テーブルが既に作成されている列は、次のSQLを使用します。

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

PRIMARY KEY制約のネーミングを可能にし、複数の列にPRIMARY KEY制約を定義するために、次のSQL構文を使用します。

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

Note:あなたは主キーを追加するには、ALTER TABLE文を使用する場合は、主キー列(複数可)は、既に(テーブルが最初に作成されたとき)は、NULL値が含まれないように宣言されている必要があります。


PRIMARY KEY制約を削除するには

PRIMARY KEY制約を削除するには、次のSQLを使用します。

MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID