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

📅  最后修改于: 2021-07-02 14:15:32             🧑  作者: 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,其中Dept_id = 1

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

  • 更新学生集Dept_id = Null,其中Roll_on = 1->这将成功,因为roll no是主键,我们可以将外键设置为NULL
  • 更新部门集Dept_id = Null,其中Dept_id = 1->由于学生表(第1和第2卷)正在引用Dept_id,因此根据参照完整性约束,我们不能删除Dept_id。但是,如果我们要使用Cascaded,可以例外地克服它删除选项。

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