MySQL 从 8.0.16 版本开始支持 CHECK 约束功能。接下来,我通过一个案例来演示这一点。

https://dev.mysql.com/doc/refman/8.0/en/create-table-check-constraints.html


我们创建一个名为 scores 的表,表中的 CHECK 约束确保 score 字段的值不能为 0。如果尝试插入值为 0 的记录,MySQL 将会抛出错误。

表结构如下:

CREATE TABLE scores (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_name VARCHAR(100) NOT NULL,
    score DECIMAL(5,2) NOT NULL,
    CONSTRAINT check_score_not_zero CHECK (score != 0)
);


以下 SQL 语句会成功执行:

INSERT INTO scores (student_name, score) VALUES ('张三', 80.5);


而以下 SQL 语句会因 score 值为 0 而失败:

INSERT INTO scores (student_name, score) VALUES ('李四', 0);

MySQL 从 8.0.16 版本开始支持 CHECK 约束功能。_MySQL

这样,CHECK 约束可以有效地确保表中数据的完整性和正确性。