📜  门| GATE-IT-2004 |第 78 题

📅  最后修改于: 2021-09-26 04:45:38             🧑  作者: Mango

考虑关系数据库中具有列和行的两个表,如下所示:

Table: Student
Roll_no Name Dept_id
1 ABC 1
2 DEF 1
3 GHI 2
4 JKL 3
Table: Department
Dept_id Dept_name
1 A
2 B
3 C

roll_no是Student表的主键,Dept_id是Department表的主键,Student.Dept_id是Department.Dept_id的外键
如果我们尝试执行以下两条 SQL 语句会发生什么?

  1. 更新学生集 Dept_id = Null 其中 Roll_on = 1
  2. 更新部门设置 Dept_id = Null where Dept_id = 1

(A) (i) 和 (ii) 都会失败
(B) B) (i) 会失败但 (ii) 会成功
(C) (i) 会成功但 (ii) 会失败
(D) (i) 和 (ii) 都会成功答案: (C)
解释:

  • update Student set Dept_id = Null where Roll_on = 1 ->这会成功,因为 roll no 是主键,我们可以设置外键 NULL
  • update Department set Dept_id = Null where Dept_id = 1 ->As Student table(Roll no 1 and 2) 是指 Dept_id 所以根据参照完整性约束我们不能删除 Dept_id。但是,如果我们想使用级联,我们可以例外地克服它删除选项。

这个问题的测验
如果您发现上面的帖子有任何错误,请在下面评论