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

Liquibase - change on delete type of foreign key for a table

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

是的,这是可能的。 <addForeignKeyConstraint> 中有 onDelete 属性,您可以将其设置为:

  • 级联
  • 设置为空
  • 设置默认值
  • 限制
  • 无操作

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

<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>