首页 > 试题广场 >

已知两个关系如下:

[单选题]

已知两个关系如下:

R

A

B

C

1

b1

c1

2

b2

c2


3

b1

c1

S

D

E

A

d1

e1

1

d2

e2

1

d3

e1

2



假设 R 的主键是 A S 的主键是 D ,在关系 S 的定义中包含外键子句:

FOREIGN KEY (A) REFERENCES R(A) ON DELETE NO ACTION ”,

下列 SQL 语句不能成功执行的是 )。

  • DELETE FROM R WHERE A=2
  • DELETE FROM R WHERE A=3
  • DELETE FROM S WHERE A=1
  • DELETE FROM S WHERE A=2
ON DELETE NO ACTION
指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 DELETE 语句。
发表于 2019-02-25 11:21:15 回复(0)
执行A的时候,S表中还存在着引用A表中A=2这一行记录,所以不能执行
发表于 2017-08-25 09:49:02 回复(0)
623头像 623
S中引用了A主键,要删R中的A前,得先把引用给删了,因为别人还在引用你
发表于 2019-02-27 11:52:07 回复(0)
先解释一下外键:
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性
就此题来说,S表中的字段是R表的主键,所以S中的字段A是S的主键。

在执行下面语句时,A =2关联到了R表,所以执行失败。
DELETE FROM S WHERE A=2
发表于 2018-03-17 10:35:26 回复(0)
S中引用了R中的主键A,因此要先把引用删除了,所以A=1,2都不能删除
发表于 2019-03-11 21:09:46 回复(0)
如果执行A的话,B中的参照性条件收到破坏,所以不能执行
发表于 2017-06-21 19:25:20 回复(0)
S中引用了A主键,要删R中的A前,得先把引用给删了,因为别人还在引用你
发表于 2020-02-22 23:32:03 回复(0)
DELETE FROM R WHERE A=2
发表于 2021-05-02 15:23:56 回复(0)
  • FOREIGN KEY (A):这部分指定了一个外键,它在当前表中的列 A 上建立外键约束。这意味着列 A 包含了外键值,这些值将与另一个表中的某个列的值进行关联。

  • REFERENCES R(A):这部分指定了外键关联的目标表和目标列。在这种情况下,外键列 A 在当前表中将与表 R 的列 A 进行关联。这表示列 A 中的值必须引用表 R 中列 A 中的值。

  • ON DELETE NO ACTION:这部分指定了在外键关联中发生删除操作时采取的操作。在这种情况下,设置为 "NO ACTION" 表示如果试图删除表 R 中的某行,并且存在关联到当前表的外键,那么删除操作将不会执行(不会采取任何操作),除非解除外键约束。

这个外键约束的含义是:在当前表中的列 A 是一个外键,它引用了表 R 中的列 A。当尝试删除表 R 中的某行时,如果存在与当前表的外键关联,删除操作将不会执行,除非你手动解除外键约束。

外键约束是用来维护数据完整性的重要工具,它确保了表之间的关系和一致性。在这种情况下,它防止了删除表 R 中的数据,如果这些数据与当前表的外键关联存在冲突。

发表于 2023-10-10 17:02:04 回复(0)
S中的A字段是R中的主键,且S中的A字段包含1和2。所以不能直接删除R中包含1和2的记录
编辑于 2022-09-23 14:32:50 回复(0)