SQL UNIQUE 制約

❮ 前章へ 次章へ ❯

<

SQL UNIQUE 制約

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

UNIQUE および PRIMARY KEY の両制約は、列または列のセットに対する一意性の保証を提供します。

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

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


CREATE TABLE での SQL UNIQUE 制約

次の SQL は、"Persons" テーブルを作成するときに、"P_Id" に UNIQUE 制約を指定します:

SQL Server / Oracle / MS Access:

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

MySQL:

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)
)

UNIQUE 制約のネーミングを可能にするため、および複数の列に UNIQUE 制約を定義するためには、次の 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 uc_PersonID UNIQUE (P_Id,LastName)
)

ALTER TABLE での SQL UNIQUE 制約

作成済みテーブルの "P_Id" 列に、UNIQUE 制約を作成するためには、次の SQL を使用します:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (P_Id)

UNIQUE 制約のネーミングを可能にするため、および複数の列に UNIQUE 制約を定義するためには、次の SQL 構文を使用します:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE 制約の削除

UNIQUE 制約を削除するには、次の SQL を使用します:

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

❮ 前章へ 次章へ ❯