Ràng buộc KIỂM TRA (CHECK Constraint) là 1 loại ràng buộc cho phép bạn chỉ định nếu 1 giá trị trong cột (column) phải đáp ứng 1 yêu cầu cụ thể. Ràng buộc CHECK sử dụng biểu thức Boolean để đánh giá các giá trị trước khi thực hiện Inserrt hoặc Update vào 1 bản ghi trong CSDL. Nếu các giá trị vượt qua điều kiện kiểm tra, PostgreSQL sẽ chèn hoặc cập nhật các giá trị này vào vào.
Định nghĩa rằng buộc kiểm tra khi tạo mới bảng CSDL
Cú pháp lệnh:
CREATE TABLE <table_name> ( <column_name> <data_type> CHECK (<check_condition>) );
Hoặc chỉ định 1 tên cho rằng buộc kiếm tra
CREATE TABLE <table_name> ( <column_name> <data_type> CONSTRAINT <constraint_name> CHECK (<check_condition>) );
Ví dụ: Tạo bảng employees có trường Salary có rằng buộc kiểm tra là salary > 0
CREATE TABLE employees ( employee_id serial PRIMARY KEY, fullname character varying, salary numeric CHECK(salary > 0) );
Bây giờ thử kiểm tra bằng cách insert dữ liệu với giá trị salary = -1
INSERT INTO employees (fullname, salary) VALUES ('Nguyen Van A', -1);
Kết quả có lỗi phát sinh:
Định nghĩa rằng buộc kiểm tra khi cho bảng CSDL đã tồn tại
Chúng ta sử dụng lệnh SQL: ALTER TABLE với action ADD CONSTRAINT
Cú pháp lệnh:
ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> CHECK ( <check_condition> );
Ví dụ: Chúng ta add thêm rằng buộc kiểm tra cho bảng product có cấu trúc như sau:
Sử dụng lệnh SQL để thêm rằng buộc check cho bảng này
ALTER TABLE product ADD CONSTRAINT qty_price_check CHECK ( qty > 0 AND price > 100000 );
Nguồn: vinasupport.com