Error number: MY-011090; Symbol: ER_DD_UPGRADE; SQLSTATE: HY000
Message: Data dictionary upgrading from version ‘%u’ to ‘%u’.
错误说明:
MY-011090 ER_DD_UPGRADE是MySQL中定义的一个错误代码,它表示在更新或升级数据字典时出现问题。尤其是当使用了CREATE TABLE语句进行表结构更改,或者在表更名,或者使用ALTER TABLE重命名列名的时候,都要更新或者升级数据字典,然后, ER_DD_UPGRADE 就出现了。
常见的案例会出现在以下几种情况:
1. 在一个表的列中插入数据的时候,数据出现了非法的字节(也就是ESC),然后MySQL server就会把这个字段标记成了失效;
2. 使用ALTER TABLE重命名表或者列的时候,在重命名表或者列时忘记写注释信息,导致数据字典表变得无效;
3. 在修改表结构时,忘记MySQL server提供的更新数据字典表相关API,而是直接在数据库系统核心文件中修改,而不更新数据字典表。
解决方法:
解决这个错误好办,只需要使用MySQL提供的API更新数据字典表即可。当使用MySQL提供的API来更新或升级数据字典表时,MySQL server会主动检查错误代码ER_DD_UPGRADE,并将表标记为可修复的。
当使用MySQL提供的API来更新或升级数据字典表时,MySQL server会主动检测并报出提示信息,提示用户表被变更了,接下来要更新数据字典表,才能正常使用。
使用ALTER TABLE命令或CREATE TABLE语句来更改表结构,或者使用ALTER TABLE语句来重命名列名,都要更新数据字典表,否则ER_DD_UPGRADE错误就会出现。不妨在执行表更改操作Boot后,显式的执行一条以更新数据字典表的API,确保表架构与表数据同步,以免出现ER_DD_UPGRADE错误。