Error number: 3940; Symbol: ER_CONSTRAINT_NOT_FOUND; SQLSTATE: HY000
Message: Constraint ‘%s’ does not exist.
错误说明
MySQL错误代码3940表示:ER_CONSTRAINT_NOT_FOUND,数据库初始化时,MySQL未发现“约束”(constraint)。这可能是由于非法约束而引起的。
常见案例
这个错误很有可能是由于数据库表格定义导致的,如创建表时,列定义忘记添加NOT NULL约束,或是CREATE TABLE 时 reference 语法中忘记指定 REFERENCES 之类的,而导致该错误发生。
解决方法
一般而言,使用此错误时可以考虑检查列定义,是否有必要的 NOT NULL、CHECK、REFERENCES 等语法,以及在其后是否指定参数等,进而排查非法约束对原因。另外,对于ALTER TABLE,可以考虑检查被修改的表中是否已经存在相同的索引或约束,即是否重复,也可以解决该问题。如果问题无法解决,可以尝试联系数据库管理员,排查该错误真正的原因。