Giới hạn UNIQUE trong SQL

Giới hạn UNIQUE trong SQL

Ràng buộc UNIQUE duy nhất xác định mỗi bản ghi trong bảng cơ sở dữ liệu.

Ràng buộc UNIQUE và PRIMARY KEY cung cấp đảm bảo tính duy nhất cho cột hoặc tập hợp cột.

PRIMARY KEY có ràng buộc UNIQUE tự động định nghĩa.

Lưu ý rằng mỗi bảng có thể có nhiều ràng buộc UNIQUE, nhưng mỗi bảng chỉ có thể có một ràng buộc PRIMARY KEY.

Ràng buộc UNIQUE trong CREATE TABLE SQL

Dưới đây là SQL tạo ràng buộc UNIQUE trên cột "Id_P" khi tạo bảng "Persons":

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

Nếu cần đặt tên UNIQUE ràng buộc và định nghĩa UNIQUE ràng buộc cho nhiều cột, hãy sử dụng ngữ pháp SQL sau đây:

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

UNIQUE Constraint trong ALTER TABLE SQL

Khi bảng đã được tạo, nếu cần tạo UNIQUE ràng buộc trong cột "Id_P", hãy sử dụng SQL sau đây:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (Id_P)

Nếu cần đặt tên UNIQUE ràng buộc và định nghĩa UNIQUE ràng buộc cho nhiều cột, hãy sử dụng ngữ pháp SQL sau đây:

MySQL / SQL Server / Oracle / MS Access:

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

Hủy UNIQUE ràng buộc

Nếu cần hủy UNIQUE ràng buộc, hãy sử dụng SQL sau đây:

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID