【发布时间】:2012-09-27 20:53:33
【问题描述】:
我在下面有 2 个数据库表:
问题表
QuestionId(Pk) SessionId(PK) Question
1 AAA my name is
2 AAA my age is
1 AAB my DOB is
Image_Question 表
ImageQuestionId(Pk) ImageId SessionId QuestionId
1 1 AAB 1
2 2 AAA 2
3 3 AAA 1
我想要发生的是,如果用户从问题表中删除这一行:
1 AAB my DOB is
我希望它通过同时引用 SessionId 和 Question Id 来删除 Image_Question 表中的相应行。由于问题表中删除的行由 SessionId = AAB 和 QuestionId = 1 组成,它应该从包含 SessionId = AAB AND QuestionId = 1 的 Image_Question 表中删除相应的行,这意味着应该从中删除的唯一行图片问题如下:
1 1 AAB 1
这是因为 SessionId 和 QuestionId 都与问题表中已删除的行匹配。
有谁知道如何为此编写 SQL 代码?
更新:
下面是我试过的?
ALTER TABLE Image_Question ADD CONSTRAINT FK_SessionQuestion FOREIGN KEY (SessionId,QuestionId) REFERENCES Question (SessionId,QuestionId) ON DELETE CASCADE;
【问题讨论】:
-
对不起,sessionId也是问题表中的主键
-
@njk 我更新了包含我尝试过的 sql 语句的问题