Danh sách Tutorial

[PostgreSQL] Rằng buộc Kiểm Tra (CHECK Constraint)


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

 

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web