
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);
这样,CHECK 约束可以有效地确保表中数据的完整性和正确性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。