MySQL Error number: MY-013941; Symbol: ER_IB_MSG_CLEAR_INSTANT_DROP_COLUMN_METADATA; SQLSTATE: HY000

文档解释

Error number: MY-013941; Symbol: ER_IB_MSG_CLEAR_INSTANT_DROP_COLUMN_METADATA; SQLSTATE: HY000

Message: Failed to clear instant drop column metadata for table %s

Error number: MY-013941; Symbol: ER_IB_MSG_CLEAR_INSTANT_DROP_COLUMN_METADATA; SQLSTATE: HY000

错误说明:

MySQL错误number MY-013941,Symbol 为ER_IB_MSG_CLEAR_INSTANT_DROP_COLUMN_METADATA,SQLSTATE为HY000,是一个关于列的metadata的清除操作的错误。这个错误通常出现在当用户试图在涉及InnoDB列的表上执行DROP COLUMN或者ALTER TABLE操作时,无法正确清除列元数据(metadata)。

常见案例

一般来说,当用户使用DROP COLUMN 或 ALTER TABLE,移除一列时,如果表装在的是InnoDB引擎的话,就会报出这个错误。同样,这个错误也可能出现在移除一个TimeStamp字段时,做RENAME COLUMN操作被移动到其他表时等情况 。

解决方法:

方案一:

首先,请确定这个列是否存在重要的元数据,如果确定没有关键性元数据,推荐用户重启MySQL服务器来解决该问题,这种情况下重启服务器之后,MySQL就可以强制清理掉无效的元数据。

方案二:

如果没有必要重启MySQL服务器,可采取更安全的办法来解决这个问题,那就是移动该表到其他数据库,以避免触发该错误。通过使用CREATE TABLE … AS (SELECT * FROM …) 语句可以实现表的拷贝。然后使用DROP移除原来的表,再LOCATE TABLE把新表迁移到原表所在的数据库。

你可能感兴趣的