mysql 约束检查产生错误

标签 mysql constraints

作为家庭作业,我们必须编写一条同时执行多项操作的 SQL 语句。我会在这里发布

更改表 assn7 添加 gpa float 默认值 4.0 约束 gpacheck 检查(gpa >= 0.0 且 gpa <=4.0);

我想要做什么应该是显而易见的,但我收到了错误

错误 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在“CONSTRAINT gpacheck”附近使用的正确语法 检查(gpa >= 0.0 AND gpa <=4.0)' 在第 2 行

如果我去掉约束检查,它就会起作用,但我们需要它是一个大的 sql 语句。

最佳答案

您的查询语句有点错误。每 MySQL manual应该是

ALTER TABLE assn7 ADD gpa float DEFAULT 4.0;
ALTER TABLE assn7 ADD CONSTRAINT gpacheck check(gpa >= 0.0 AND gpa <=4.0);

您不能将添加列和约束混合在一起。

尽管指出; MySQL 中没有 Check 约束支持。每manual它说

The CHECK clause is parsed but ignored by all storage engines.

替代方案是使用触发器(BEFORE INSERT TRIGGER)

关于mysql 约束检查产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266981/

相关文章:

php - 从一张表返回结果

ios - 为什么在 super View 上添加约束时前导空间为-20

c - C中的时序问题

MySQL 检查约束

ios - ScrollView 的约束问题

ios - swift - 向模态视图添加约束

mysql - 如何只显示负值,而让正值全部显示为0?

c# - 如何使用 C# 或通过 Interconnect 或 Passthru 将数据从 TitanDB 导出到 MySQL

php - Mysql Order by Tweak

php - XAMPP中的Mysql和mysqli连接