SQL UNIQUE-rajoitus

SQL UNIQUE-rajoitus

UNIQUE-rajoitus tunnistaa yksilöllisesti tietokantataulun jokaisen tietueen.

UNIQUE- ja PRIMARY KEY-rajoitukset tarjoavat uniikkuuden takuun sarakkeille tai sarakkeiden joukolle.

PRIMARY KEY sisältää automaattisesti määritellyn UNIQUE-rajoituksen.

Huomaa, että jokaisella taululla voi olla useita UNIQUE-rajoituksia, mutta jokaisella taululla voi olla vain yksi PRIMARY KEY-rajoitus.

SQL UNIQUE-rajoitus CREATE TABLE

Seuraava SQL-lause luo UNIQUE-rajoituksen "Id_P"-sarakkeeseen "Persons"-taulussa luonettaessa taulua:

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

SQL UNIQUE Constraint on ALTER TABLE

当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (Id_P)

如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

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

撤销 UNIQUE 约束

如需撤销 UNIQUE 约束,请使用下面的 SQL:

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID