下面有4个db表,它们共同包含SessionId
字段作为外键或主键:(下面显示的表不是完整的表,只是缩短的版本供您查看)< / p>
会话表:
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
表中的Session_Completed
从数据库中删除,那么删除包含相同{{1}的所有其他表中的行是可能的}?
如果从SessionId
表中删除SessionId
,我也想做同样的事情。
由于
答案 0 :(得分:0)
您希望将ON DELETE CASCADE添加到外键约束中。
首先,删除当前约束而不进行级联删除。
ALTER TABLE Session_Completed
DROP PRIMARY KEY pk_SessionId
然后,使用ON DELETE CASCADES:
重新添加约束ALTER TABLE Session_Completed
add CONSTRAINT fk_sessionid
FOREIGN KEY (SessionId)
REFERENCES session(SessionId)
ON DELETE CASCADE;