微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 ON DELETE CASCADE 添加到同一个表中的 2 个外键

如何解决将 ON DELETE CASCADE 添加到同一个表中的 2 个外键

我有 3 个表,这里是它们的 sql

CREATE TABLE [dbo].[User]
(
    [Id] INT NOT NULL IDENTITY(1,1) PRIMARY KEY,[Email] VARCHAR(50) NOT NULL unique,[UserName] VARCHAR (50) NOT NULL Unique,[Password] VARCHAR(50) NOT NULL,[FirstName] VARCHAR(50) NOT NULL,[LastName] VARCHAR(50) NOT NULL,[PhoneNumber] VARCHAR(50) NOT NULL unique,[Photo] VARCHAR(MAX) NULL,[UserType] VARCHAR(50) NOT NULL,);


CREATE TABLE [dbo].[JobPost]
(
    [Id] INT NOT NULL IDENTITY(1,[ClientId] INT NOT NULL,[JobType] VARCHAR(50) NOT NULL,[JobTitle] VARCHAR(50) NOT NULL,[JobBudget] INT NOT NULL,[JobDate] VARCHAR(50) NOT NULL,[JobDes] VARCHAR(500) NOT NULL,[PropNum] INT NOT NULL DEFAULT 0,[Rate] FLOAT NOT NULL DEFAULT 0,[Approved] INT NOT NULL DEFAULT 0,[Taken] INT NOT NULL DEFAULT 0,CONSTRAINT [FK_JobPost_ToTable] FOREIGN KEY ([ClientId]) REFERENCES [User]([Id]) ON DELETE CASCADE

    
);


CREATE TABLE [dbo].[Proposal] (
    [Id] INT NOT NULL IDENTITY(1,[JobId]        INT NOT NULL,[FreelancerId] INT NOT NULL,CONSTRAINT [FK_Proposal_ToTable] FOREIGN KEY ([JobId]) REFERENCES [dbo].[JobPost] ([Id]),CONSTRAINT [FK_Proposal_ToTable_1] FOREIGN KEY ([FreelancerId]) REFERENCES [dbo].[User] ([Id]) ON DELETE CASCADE
);

当我删除用户记录或职位记录时,我想删除提案表中的一条记录,但我无法在它所说的两个外键上都使用 DELETE CASCADE

表 'Proposal' 上的 FOREIGN KEY 约束 'FK_Proposal_ToTable' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。

我希望桌子是这样的

CREATE TABLE [dbo].[Proposal] (
    [Id] INT NOT NULL IDENTITY(1,CONSTRAINT [FK_Proposal_ToTable_1] FOREIGN KEY ([FreelancerId]) REFERENCES [dbo].[User] ([Id]) ON DELETE CASCADE
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。