我吓坏了。我在一家公司(非常愚蠢)不备份他们的MySQL数据库。我必须更改表“项目”中的一列,以增加项目说明的最大字符数。我使用以下命令:
ALTER TABLE items CHANGE description description varchar(5000) NOT NULL;
但是,输入此命令后,出现以下错误:
Error on rename of './company/#sql-b30_400ad' to './company/items' (errno: 150 - Foreign key constraint is incorrectly formed)
现在,桌子已经不见了。有没有一种方法可以访问“#sql-b30_400ad”表进行恢复?我知道使用以下方法从此表中删除了一个键:
SET foreign_key_checks = 0;
ALTER TABLE items DROP KEY foreign_key_name;
SET foreign_key_checks = 1;
有什么方法可以撤消所发生的事情,或恢复为ALTER命令创建的临时项目表?
编辑:该表使用InnoDB引擎
再次编辑:因此我发现,由于我们将Amazon Web Service用于我们的MySQL服务器,AWS会每天自动对其进行备份,最近一次备份是在错误发生15分钟之前进行的。我的裤子现在是棕色和黄色的,但是一切都很好,我感谢所有回答的人!
您可以阅读有关该命令的文档:
check
repair
和工具
mysqlcheck
myisamchk
...
我的建议:但是首先,如果数据非常重要,出于安全原因,您可能必须停止磁盘上的任何读/写过程,并且可能会停止磁盘。
以后:即使进行这些修复/检查命令,也要在进行任何修改之前始终进行自己的备份
mysqldump
mysqlhotcopy
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句