0

我在下面有 4 个 db 表,它们共同包含SessionId作为外键或主键的字段:(下面显示的表不是完整表,只是供您查看的缩短版本)

会话表:

SessionId (PK) SessioName
1              AAA
2              AAB

Session_Completed 表

SessionId (PK) Complete
1              0
2              1

问题表

SessionId (PK) QuestionId(PK) (Composite Keys)
1              1
1              2
2              1
2              2

答案表

AnswerId(PK) SessionId(FK)  QuestionId
   1              1          1
   2              1          1
   3              1          2
   4              2          1
   5              2          2
   6              2          2

我的问题是,如果从数据库中删除表中SessionId的a ,是否有可能删除它包含相同的所有其他表中的行?Session_CompletedSessionId

如果从表SessionId中删除a,我也想做同样的事情。Session

谢谢

4

1 回答 1

0

您想将 ON DELETE CASCADE 添加到外键约束中。

首先,在没有级联删除的情况下删除当前约束。

ALTER TABLE Session_Completed
DROP PRIMARY KEY pk_SessionId

然后,使用 ON DELETE CASCADE 重新添加约束:

ALTER TABLE Session_Completed
  add CONSTRAINT fk_sessionid
    FOREIGN KEY (SessionId)
    REFERENCES session(SessionId)
    ON DELETE CASCADE;
于 2013-01-05T05:29:57.360 回答