【问题标题】:Drop duplicate foreign keys with SQLAlchemy Migrate使用 SQLAlchemy Migrate 删除重复的外键
【发布时间】:2012-10-18 16:24:59
【问题描述】:

我错误地添加了两个引用同一个表和列的外键。 SHOW CREATE TABLE 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

此时我唯一的解决方案是遍历列上的所有键/约束并删除它们,然后再添加一次级联键。

有没有办法使用SQLAlchemy Migrate 仅删除非级联约束?

【问题讨论】:

    标签: mysql foreign-keys sqlalchemy sqlalchemy-migrate


    【解决方案1】:

    你试过了吗?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-18
      • 2021-09-07
      • 2015-07-16
      • 2019-09-30
      • 2015-02-02
      • 2021-08-04
      • 2011-01-26
      相关资源
      最近更新 更多