我在加入级联删除到SQL Server中的外键的问题。 表A有三列。 在表中的列1和2是外键的外观起坐表B.同一列我想删除行的表B级联删除一个基于这些外键的表A中的一行。
表A中的另一列有一个外键查找表C.如果表C中的行被删除,那么我想对应的单元格设置为空表A.
当我在这些约束添加我抛出的错误:
表“RelatedDeliverableUnit”引入外来KEY约束“FK_RDU_TODELIVERABLEUNITREF”可能会导致循环或多个级联路径。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他外键约束。
我有点卡住这一点,甲骨文似乎与这个逻辑非常高兴。 我加入使用Liquibase这些约束。 我认为错误是记在我的逻辑,而不是语法,但为了完整性这里是管理外键liquidbase脚本:
<addForeignKeyConstraint constraintName="FK_RDU_FROMDELIVERABLEUNITREF" baseTableName="relatedDeliverableUnit"
baseColumnNames="FROMDELIVERABLEUNITREF" referencedTableName="DELIVERABLEUNIT" referencedColumnNames="DELIVERABLEUNITREF" onDelete="CASCADE"/>
<addForeignKeyConstraint constraintName="FK_RDU_TODELIVERABLEUNITREF" baseTableName="relatedDeliverableUnit"
baseColumnNames="TODELIVERABLEUNITREF" referencedTableName="DELIVERABLEUNIT" referencedColumnNames="DELIVERABLEUNITREF" onDelete="CASCADE"/>
<addForeignKeyConstraint constraintName="FK_RDU_RELATIONSHIPREF"
baseTableName="relatedDeliverableUnit" baseColumnNames="RELATIONSHIPREF" referencedTableName="RELATIONSHIPTYPES" referencedColumnNames="RELATIONSHIPREF" onDelete="SET NULL"/>
在此先感谢您的帮助