AZCode.vn AZCode

Ràng buộc UNIQUE trong SQL

Ràng buộc UNIQUE trong SQL ngăn cản việc hai bản ghi có các giá trị đồng nhất trong một cột cụ thể. Ví dụ, trong bảng SINHVIEN, bạn có thể muốn ngăn cản việc hai hoặc nhiều người có cùng tuổi.

Ví dụ

Ví dụ sau tạo bảng mới với tên SINHVIEN và thêm 5 cột. Ở đây, cột TUOI được thiết lập là UNIQUE, để bạn không muốn hai bản ghi có cùng tuổi.

CREATE TABLE SINHVIEN(
       ID   INT              NOT NULL,
       TEN VARCHAR (20)     NOT NULL,
       TUOI  INT              NOT NULL UNIQUE,
       KHOAHOC  CHAR (25) ,
       HOCPHI   DECIMAL (18, 2),       
       PRIMARY KEY (ID)
);

Nếu bảng đã được tạo, thì để thêm một ràng buộc UNIQUE cho cột TUOI, bạn sẽ viết lệnh như sau:

ALTER TABLE SINHVIEN
   MODIFY TUOI INT NOT NULL UNIQUE;

Bạn cũng có thể sử dụng cú pháp sau, mà hỗ trợ việc đặt tên ràng buộc trong nhiều cột.

ALTER TABLE SINHVIEN
   ADD CONSTRAINT myUniqueConstraint UNIQUE(TUOI, HOCPHI);

Xóa một ràng buộc UNIQUE trong SQL

Để xóa một ràng buộc UNIQUE trong SQL, bạn sử dụng:

ALTER TABLE SINHVIEN
   DROP CONSTRAINT myUniqueConstraint;

Nếu bạn đang sử dụng MySQL, thì bạn sử dụng cú pháp sau:

ALTER TABLE SINHVIEN
   DROP INDEX myUniqueConstraint;
rang_buoc_trong_sql