Error number: 3820; Symbol: ER_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN; SQLSTATE: HY000
Message: Check constraint ‘%s’ refers to non-existing column ‘%s’.
ER_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN错误是MySQL的错误码,错误号为3820,MySQL的SQLSTATE错误码为HY000。
这个错误表明,在MySQL中定义的检查约束引用的列在表中不存在,系统找不到该条检查约束。该错误通常发生在定义约束时发生,或者当通过ALTER TABLE命令向表中添加字段时发生。
比如,如果用户运行以下命令,
“`
ALTER TABLE Users ADD CHECK (age > 0);
“`
但表Users中并不存在名为’age’的列,那么MySQL将抛出ER_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN错误。
解决方法:
1.如果检查约束的错误引起的,可以检查数据库表中的字段是否存在约束引用的列,如果不存在,可以根据实际情况添加相应的字段;
2.如果字段已存在,也可将约束关键字的列名引用使用反引号(`)括起来,表明该列是一个标识符;
3.或者可以将检查约束的定义语句用括号括起来,这样MySQL就不会认为age是一个函数。