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



我丢了一张表,但INNODB_SYS_FOREIGNINNODB_SYS_FOREIGN_COLS表中留下了外来约束的记录......

表名procesos

INNODB_SYS_FOREIGN_COLS的记录是

ID|FOR_COL_NAME|REF_COL_NAME|POS    

DBname/fk_procesos_hv1|id_hv|id_hv

INNODB_SYS_FOREIGN的记录是

ID|FOR_NAME|REF_NAME|N_COLS|TYPE    

数据库名称/fk_procesos_hv1|DBname/procesos|DBname/hv|1|48

我创建了一个名为procesos2的第二个表,但是当我尝试重命名为procesos时,我收到此消息"errno:150"外键约束格式不正确",因此,如何删除 DROP 表procesos的外部约束?

首先禁用外键约束

SET @@FOREIGN_KEY_CHECKS = 0

将表重命名为 procesos,然后删除约束。

之后再次启用约束

SET @@FOREIGN_KEY_CHECKS = 1

如果表过程也设置了索引,您应该检查,这也应该删除。

最新更新