我有一個Person
表和Stuff
表。 Stuff
可能屬於一個人,也可能是其他人(不是所有者)可以使用的東西。SQL Server:表使兩個引用到另一個表
這裏的設計:
人
- 編號
- 名稱
東西
- 編號
- 名
- OWNERID(非必需)
- 用戶ID(非必需)
現在修改表,使協會:
alter table [stuff]
add constraint Stuff2PersonOwner
foreign key (PersonId)
references [person] (id) ON DELETE SET NULL;
上面的腳本執行罰款。
alter table [stuff]
add constraint Stuff2PersonUser
foreign key (UserId)
references [person] (id) ON DELETE SET NULL;
當我執行上面的腳本我得到一個異常:
引入外來KEY約束上表「Stuff2PersonUser」「東西」 可能導致循環或多個級聯路徑。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY 約束。
這裏有什麼問題?爲什麼我無法創建與ON DELETE SET NULL
的第二個關聯?
正如它所說的,指定'ON DELETE NO ACTION'或'ON UPDATE NO ACTION' – Ormoz
我還沒有嘗試過,但是如果我刪除了這個人,那不會導致問題嗎? – Dilshod
沒有,第一個約束將處理它 – Ormoz