MySQL Error number: 3820; Symbol: ER_CHECK_CONSTRAINT_REFERS_UNKNOWN_COLUMN; SQLSTATE: HY000

文档解释

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是一个函数。

你可能感兴趣的