SQL UNIQUE 制約

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

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

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

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

SQL UNIQUE Constraint on CREATE TABLE

次の SQL は、「Persons」テーブルの作成時に「Id_P」列に UNIQUE 制約を作成します。

MySQL:

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

SQL Server / Oracle / MS Access:

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

UNIQUE 制約に名前を付け、複数の列に UNIQUE 制約を定義する必要がある場合は、次の 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 uc_PersonID UNIQUE (Id_P,LastName)
)