如果在 MYSQL 中使用 liquibase,则删除外键

Posted

技术标签:

【中文标题】如果在 MYSQL 中使用 liquibase,则删除外键【英文标题】:Drop foreign key if exists using liquibase in MYSQL 【发布时间】:2018-10-10 06:25:18 【问题描述】:

我想问一下,有没有办法只在外键约束存在时才删除它?我当前的变更集如下所示:

 <changeSet author="blabla" id="10_1_1">

    <comment>Drop FK DummyFK1</comment>

    <dropForeignKeyConstraint constraintName="DummyFK1" baseTableName="DummyToken" />

</changeSet>

谢谢!

【问题讨论】:

【参考方案1】:

您需要添加preConditionsliquibase 中有 foreignKeyConstraintExists 内置前置条件。

<changeSet id="changeSetId" author="John Doe">
    <preConditions onFail="MARK_RAN">
        <foreignKeyConstraintExists foreignKeyName="DummyFK1"/>
    </preConditions>
    <comment>Drop FK DummyFK1</comment>
    <dropForeignKeyConstraint baseTableName="DummyToken" constraintName="DummyFK1"/>
</changeSet>

【讨论】:

以上是关于如果在 MYSQL 中使用 liquibase,则删除外键的主要内容,如果未能解决你的问题,请参考以下文章