Mysql 使用SQLAlchemy Migrate删除重复的外键

Mysql 使用SQLAlchemy Migrate删除重复的外键,mysql,foreign-keys,sqlalchemy,sqlalchemy-migrate,Mysql,Foreign Keys,Sqlalchemy,Sqlalchemy Migrate,我错误地添加了两个外键,它们引用同一个表和列。SHOW CREATE TABLE_a如下所示: table_a | CREATE TABLE `table_a` ( `id` char(36) NOT NULL, `fk` int(11) default NULL, `created_at` datetime default NULL, PRIMARY KEY (`id`), KEY `fk` (`fk`), CONSTRAINT `table_a_ibfk_1` FOREIGN KEY (`

我错误地添加了两个外键,它们引用同一个表和列。
SHOW CREATE TABLE_a
如下所示:

table_a | CREATE TABLE `table_a` (
`id` char(36) NOT NULL,
`fk` int(11) default NULL,
`created_at` datetime default NULL,
PRIMARY KEY  (`id`),
KEY `fk` (`fk`),
CONSTRAINT `table_a_ibfk_1` FOREIGN KEY (`fk`) REFERENCES `table_b` (`id`),
CONSTRAINT `table_a_fkey` FOREIGN KEY (`fk`) REFERENCES `table_b` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
此时,我唯一的解决方案是迭代列上的所有键/约束,删除它们,然后再添加一次级联键

是否有一种方法可以仅使用删除非级联约束?

是否尝试过

cons = ForeignKeyConstraint(columns=[table.c.fk],
                            refolumns=[table_b.c.id],
                            name="table_a_ibfk_1")
cons.drop(engine=migrate_engine)