SQL PRIMARY KEY 制約

SQL PRIMARY KEY 制約

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

主キーはユニークな値を含む必要があります。

主キーカラムにはNULL値を含むことができません。

各テーブルには主キーがあり、各テーブルには1つの主キーのみがあります。

CREATE TABLEでのPRIMARY KEY制約

以下のSQLは、"Persons"テーブルが作成される際に"Id_P"カラムにPRIMARY KEY制約を作成するためのものです:

MySQL:

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

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P 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
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)

ALTER TABLE 上の SQL PRIMARY KEY 约束

既存のテーブルに対して "Id_P" クラムに PRIMARY KEY 约束を作成する場合、以下の SQL を使用してください:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)

PRIMARY KEY 约束に名前を付けたり、複数の列に対して PRIMARY KEY 约束を定義する必要がある場合は、以下の SQL 文法を使用してください:

MySQL / SQL Server / Oracle / MS Access:

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

注記: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