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

SQL固有制約


SQL UNIQUE制約

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

UNIQUEとPRIMARY KEY制約は、カラムの一意性または列の集合のための保証を提供両方。

PRIMARY KEY制約は自動的にそれに定義されているUNIQUE制約を持っています。

あなたは、テーブルごとに多くのUNIQUE制約を持つことはできますが、テーブルごとに1つだけPRIMARY KEY制約。


CREATE TABLE上のSQL UNIQUE制約

次のSQLは、上にUNIQUE制約を作成する"P_Id"とき列"Persons"テーブルが作成されます。

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制約

UNIQUE制約を作成するには"P_Id"テーブルが既に作成されている列は、次の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