Error number: MY-012064; Symbol: ER_IB_MSG_239; SQLSTATE: HY000
Message: %s
错误说明
MY-012064,ER_IB_MSG_239 这是一个MySQL错误,以MySQL消息(ER)开头。此消息对应于SQLSTATE值HY000,表示一般错误,可以由更具体的MySQL消息消息描述。
此MySQL消息具有以下说明:“表更改要求使用已失效的存储引擎,必须更新表定义并重试更改。”这是一条具体的错误,一般来说,表格的存储引擎无效,或者应该改变表格的存储引擎,但没有做到这一点。
常见案例
此错误通常发生在两种情况下:
1.尝试更改已存在表格,但表格被声明为一个无效的存储引擎,比如MyISAM存储引擎;
2.尝试更改表格,但表格被声明为一个失效的存储引擎,但更改表格时没有转换为新的存储引擎,比如将MyISAM表格更新为InnoDB存储引擎。
解决方法
对于ER_IB_MSG_239这类MySQL错误,有2个主要的解决方法:
1.如果表格被声明为无效的存储引擎,例如MyISAM,可以通过ALTER TABLE语句更改表格的存储引擎,并将其转换成一个正确的存储引擎,如InnoDB: ALTER TABLE tablename ENGINE=InnoDB;
2.如果表格被声明为失效的存储引擎,但更改表格时没有转换成新存储引擎,可以使用DROP TABLE字句来删除当前表格,然后再次使用CREATE TABLE字句来创建正确格式的表格,同时指定一个正确的存储引擎: DROP TABLE tablename;
CREATE TABLE tablename (….)
ENGINE=InnoDB;