Ràng buộc CHECK trong SQL




Ràng buộc CHECK cho phép một điều kiện để kiểm tra giá trị đang được nhập vào một bản ghi. Nếu điều kiện được ước lượng là false, thì bản ghi vi phạm ràng buộc này và không được nhập vào trong bảng.

Ví dụ

Ví dụ sau tạo một bảng mới với tên SINHVIEN và thêm 5 cột. Ở đây, chúng ta thêm một ràng buộc CHECK cho cột TUOI, để bảng không nhận bất kỳ dữ liệu nào mà dưới 18 tuổi.

CREATE TABLE SINHVIEN(
       ID   INT              NOT NULL,
       TEN VARCHAR (20)     NOT NULL,
       TUOI  INT              NOT NULL CHECK (TUOI >= 18),
       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 CHECK cho cột TUOI, bạn viết lệnh tương tự như:

ALTER TABLE SINHVIEN
   MODIFY TUOI INT NOT NULL CHECK (TUOI >= 18 );

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

ALTER TABLE SINHVIEN
   ADD CONSTRAINT myCheckConstraint CHECK(TUOI >= 18);

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

Để xóa một ràng buộc CHECK trong SQL, bạn sử dụng cú pháp sau. Cú pháp này không làm việc trong MySQL.

ALTER TABLE SINHVIEN
   DROP CONSTRAINT myCheckConstraint;

rang_buoc_trong_sql.jsp