如何删除已删除表(MySQL)的外部约束?

如何删除已删除表(MySQL)的外部约束?,mysql,foreign-keys,Mysql,Foreign Keys,我删除了一个表,但是在INNODB\u SYS\u foreign和INNODB\u SYS\u foreign\u COLS表中留下了一个外部约束的记录 表名为procesos INNODB\u SYS\u FOREIGN\u COLS中的记录为 ID|FOR_COL_NAME|REF_COL_NAME|POS DBname/fk_过程|u hv1 | id|u hv | id|u hv 而INNODB\u SYS\u FOREIGN中的记录是 ID|FOR_NAME|REF_NAM

我删除了一个表,但是在INNODB\u SYS\u foreignINNODB\u SYS\u foreign\u COLS表中留下了一个外部约束的记录

表名
procesos

INNODB\u SYS\u FOREIGN\u COLS
中的记录为

ID|FOR_COL_NAME|REF_COL_NAME|POS    
DBname/fk_过程|u hv1 | id|u hv | id|u hv

INNODB\u SYS\u FOREIGN
中的记录是

ID|FOR_NAME|REF_NAME|N_COLS|TYPE    
DBname/fk|U procesos|hv1 | DBname/procesos | DBname/hv | 1 | 48


我已经创建了第二个名为
process2
的表,但是当我试图重命名为
process2
时,我收到一条消息“errno:150”外键约束格式不正确”,因此,如何删除已删除表的外键约束
process2

首先禁用外键约束

SET @@FOREIGN_KEY_CHECKS = 0
将表重命名为procesos,然后删除约束

之后,再次启用约束

SET @@FOREIGN_KEY_CHECKS = 1

您应该检查是否还有表procesos的索引集,该索引集也应该被删除。

您是否尝试将表
procesos
删除外键
id\u name\u fk
;是的,但MySQL表示表
procesos
不存在。我收到以下消息:#1025-将“/DBname/proceos2”重命名为“/DBname/proce”时出错sos'(errno:150“外键约束格式不正确”)两个表中外键的列必须相同。但是外键chekcks应该被取消。感谢您的时间@nbk。引用的表还有一个错误。引用的表没有显示,但其空格表(存在)…然后我向数据库管理员请求销毁/创建数据库并恢复上次备份…幸运的是,我们仍处于开发阶段。顺便说一下,我得到的错误是:#1813-表“
DBname
HV
”的表空间存在。请在导入之前丢弃该表空间