Liquibase - 改变表外键的删除类型。

问题描述 投票:1回答:1

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

liquibase
1个回答
1
投票

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

  • CASCADE
  • SET NULL
  • 设置默认值
  • 限制
  • NO ACTION

如果你已经有一个外键,那么你可以放弃现有的约束,然后用你需要的设置重新创建它。

<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>
© www.soinside.com 2019 - 2024. All rights reserved.