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

2024-08-02 14:37:49 浏览数 (1)

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 将会抛出错误。

表结构如下:

代码语言:sql复制
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 语句会成功执行:

代码语言:sql复制
INSERT INTO scores (student_name, score) VALUES ('张三', 80.5);

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

代码语言:sql复制
INSERT INTO scores (student_name, score) VALUES ('李四', 0);
check 约束check 约束

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

0 人点赞