CHECK constraint được sử dụng để chỉ định các điều kiện dùng để kiểm tra các giá trị trong bảng ghi được ghi xuống database. Nếu kết quả trả về của điều kiện false, nghĩa là dữ liệu đang vi phạm nguyên tắc và nó sẽ không được ghi xuống database.
Tạo Check Constraint
Ví dụ, chúng ta sẽ tạo một bảng Student gồm 5 cột StudentID, Name, Age và Gender. Ở đây chúng ta sẽ thêm một điều kiện cho cột Age lớn hơn hoặc bằng 17.
CREATE TABLE student( StudentID INT NOT NULL, Name VARCHAR(30) NOT NULL, Age INT NOT NULL, GENDER VARCHAR(9), PRIMARY KEY(ID), check(Age >= 17) );
Bảng Student có dữ liệu sau
STUDENTID | NAME | AGE | GENDER |
---|---|---|---|
1001 | Ron | 18 | Male |
1002 | Sam | 17 | Male |
1003 | Georgia | 17 | Female |
1004 | Erik | 19 | Unknown |
1005 | Christine | 17 | Female |
Khi chúng ta tiến hành thêm dữ liệu có dạng sau:
INSERT INTO student(STUDENTID, NAME, AGE, GENDER) VALUES (1006, 'Emma', 16, 'Female');
Chúng ta có thể thấy rằng Student vừa được thêm vào có Age bé hơn 17, nên dữ liệu này sẽ không được thêm xuống database.
Nếu bảng CUSTOMERS đã tồn tại trước đó, chúng ta có thể thêm một CHECK constraint cho cột AGE với mệnh đề ALTER TABLE.
ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL CHECK (AGE >= 18 );
Bạn cũng có thể sử dụng cú pháp sau, cú pháp này cũng hỗ trợ đặt tên cho ràng buộc trong nhiều cột:
ALTER TABLE CUSTOMERS ADD CONSTRAINT myCheckConstraint CHECK(AGE >= 18)
Xóa CHECK Constraint
Để xóa một CHECK Constraint sử dụng cú pháp trong SQL. Lưu ý cú pháp này không hoạt động trên MySQL.
ALTER TABLE CUSTOMERS DROP CONSTRAINT myCheckConstraint;
Nguồn tham khảo