Liquibase - 更改表的外键删除类型

ste*_*stt 7 liquibase

是否可以在 liquibase 中将删除方法上的外键从 更改NO ACTIONSET NULL

hts*_*ame 14

是的,这是可能的。有一个onDelete属性<addForeignKeyConstraint>可以设置为:

  • 级联
  • 设置为空
  • 默认设置
  • 限制
  • 无任何行动

如果您已经有外键,则可以删除现有约束并使用您需要的设置重新创建它。

<changeSet id="changeset-id" author="changeset-author">
    <preConditions onFail="MARK_RAN">
        <foreignKeyConstraintExists foreignKeyName="fk_foo_bar"/>
    </preConditions>
    <dropForeignKeyConstraint baseTableName="table_foo" constraintName="fk_foo_bar"/>
    <addForeignKeyConstraint baseTableName="table_foo" baseColumnNames="foo_col"
                             constraintName="fk_foo_bar"
                             referencedTableName="table_bar" referencedColumnNames="bar_col"
                             onDelete="SET NULL"/>
</changeSet>
Run Code Online (Sandbox Code Playgroud)