0
我有以下表格:無法創建第二級聯FK關係
CREATE TABLE [dbo].[Memberships](
[MembershipId] [int] IDENTITY(1,1) NOT NULL,
[GroupId] [int] NOT NULL,
[UserId] [int] NOT NULL,
[IsUserAdmin] [bit] NOT NULL
)
CREATE TABLE [dbo].[Gifts](
[GiftId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[MembershipId] [int] NOT NULL,
[ClaimedByMembershipId] [int] NULL
)
一個會員可以有許多與其相關的禮物。當成員資格被刪除時,我需要做兩件事:
- 刪除與
MembershipId
相關的任何禮物。 - 對於
ClaimedByMembershipId
等於要刪除的成員資格的MembershipId
的任何記錄,請將ClaimedByMembershipId
設置爲NULL
。
我試圖通過Management Studio的UI來實現這種級聯。我可以完成#1以下:
ALTER TABLE [dbo].[Gifts] WITH CHECK ADD CONSTRAINT [FK_Gifts_Memberships]
FOREIGN KEY([MembershipId])
REFERENCES [dbo].[Memberships] ([MembershipId])
ON DELETE CASCADE
GO
#2,我無法保存表格製作,我相信會是這個樣子的鍵後:
ALTER TABLE [dbo].[Gifts] WITH CHECK ADD CONSTRAINT [FK_Gifts_Memberships1]
FOREIGN KEY([ClaimedByMembershipId])
REFERENCES [dbo].[Memberships] ([MembershipId])
ON NULL CASCADE
GO
我得到出現以下錯誤:
'Memberships' table saved successfully
'Gifts' table
- Unable to create relationship 'FK_Gifts_Memberships1'.
Introducing FOREIGN KEY constraint 'FK_Gifts_Memberships1' on table 'Gifts' may cause cycles
or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify
other FOREIGN KEY constraints.
Could not create constraint. See previous errors.
在此先感謝。