Ràng buộc UNIQUE Dùng để xác định tính duy nhất của mỗi bản ghi trong một bảng cơ sở dữ liệu
Cả hai ràng buộc UNIQUE và PRIMARY KEY (khóa chính) đều đảm bảo sự duy nhất của của một cột hay một tập hợp các cột trong bảng dữ liệu.
Bản thân một ràng buộc PRIMARY KEY đã có chứa ràng buộc UNIQUE trong nó. Tức là ràng buộc UNIQUE luôn luôn được định nghĩa bên trong ràng buộc PRIMARY KEY.
Có thể bạn sẽ thấy sự khó khăn trong việc phân biệt sự khác nhau giữa ràng buộc UNIQUE và ràng buộc PRIMARY KEY. Vậy sự khác nhau giữa UNIQUE và PRIMARY KEY là:
-
Trong một bảng chỉ có duy nhất một PRIMARY KEY
-
Một bảng có thể có nhiều ràng buộc UNIQUE (bởi vì ràng buộc UNIQUE là đảm bảo sự duy nhất của mỗi bản ghi, không phải đảm bảo sự duy nhất của bảng)
Ràng buộc UNIQUE khi tạo bảng.
Đoạn mã SQL sau tạo ra ràng buộc UNIQUE trên cột PID trong khi tạo bảng “Persons”.
Mã MYSQL
CREATE TABLE Persons
(
PID INT NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (PID)
);
hoặc
CREATE TABLE Persons
(
PID INT NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
Nếu bảng Persons tồn tại (đã được tạo ra từ trước), khi đó để thêm ràng buộc UNIQUE vào cột PID, có thể làm như sau:
ALTER TABLE Persons
MODIFY PID INT NOT NULL UNIQUE;
SQL cũng hỗ trợ việc thêm ràng buộc UNIQUE cho nhiều cột,
ALTER TABLE Persons
ADD CONSTRAINT myUniqueConstraint UNIQUE(PID, LastName);
DROP (xóa bỏ) ràng buộc UNIQUE
Để xóa bỏ một ràng buộc trong SQL ta có thể thực hiện như sau:
ALTER TABLE Persons
DROP CONSTRAINT myUniqueConstraint;
Với MYSQL đoạn mã trên sẽ là
ALTER TABLE Persons
DROP INDEX myUniqueConstraint;