一个表中的外键有多个逐级删除的情况[英] multiple on delete cascade of foreign key in one table

问题描述

我有两个表,user_info 并遵循主外关系
像这样:

create table user_info
(
ID bibigint gint identity(1,1) not null primary key
Name varchar(30),
.....
.....
)
 
create table follow
(
following bigint not null references user_info(ID) on delete cascade,
follower bigint not null references user_info(ID)  on delete cascade, 
CONSTRAINT uk_follow UNIQUE (following,follower)
)



输出:
第一个表创建成功
但是当我跑来创建跟随表时,就会向我抛出错误

Msg 1785, Level 16, State 0, Line 1<br />
Introducing FOREIGN KEY constraint ''FK__foll__follo__0AF29B96'' on table ''follow'' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.<br />
Msg 1750, Level 16, State 0, Line 1

无法创建约束.查看以前的错误.

注意: 但我想在两列、关注和关注者中实现删除级联.

我的实际需求:
当从 user_info 表中删除任何记录时,应根据 ID 列从关注表中删除该用户,该 ID 可能存在于关注或关注列中.

当任何 id 相关的父表从父表中删除时,我想删除跟随表的所有记录

推荐答案

您可以将表设置为允许 Delete Cascade.
阅读更多关于这个这里[^].

本文地址:https://www.itbaoku.cn/post/1394842.html