是否可以在 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>