为什么可以从外键主表中删除数据?

发布于 科技 2024-06-11
24个回答
  1. 匿名用户2024-01-29

    我们来看一下 on delete 属性,它可以是:no action、cascade、set null、restrict。

    如果该值设置为“无操作”或“限制”,则在删除父表(即外键的**表)中的记录时,请检查该记录是否有对应的外键,如果有,则不允许删除该记录。

    如果值为Cascade,则在删除父表(即外键的**表)中的记录时,检查该记录是否有外键,如果有,则删除子表(即包含外键的表)中的记录。

    如果该值设置为null,则在删除父表(即外键的**表)中对应的记录时,首先检查该记录是否有对应的外键,如果有,则将子表中的外键值设置为null(但这需要外键允许null)。

    如果值为no action或restrict,则在更新父表(即外键的**表)中的记录时,检查该记录是否有对应的外键,如果有,则不允许该记录。

    如果该值为Cascade,则在更新父表(即外键的**表)中的记录时,请检查该记录是否有对应的外键,如果有,则更新子表(即包含外键的表)中的记录。

    如果该值设置为null,则在父表(即外键的**表)中更新对应的记录时,首先检查该记录是否有对应的外键,如果有,则将子表中的外键值设置为null(但是,这需要允许外键取null)。

  2. 匿名用户2024-01-28

    声明了外键。

    您还需要管理表中的相应数据以报告错误。

    不允许删除主表数据。

  3. 匿名用户2024-01-27

    1.级联删除可以通过外键设置。

    2.先删除外键表中的数据,然后删除当前数据。

  4. 匿名用户2024-01-26

    如果要保留子表中的特定数据,可以将对应的记录插入到备份表中,然后删除主表中的记录。

    如果要将数据保留在子表中,则只能撤消主外键关系,然后删除主表中的记录。 当然,您也可以在主表中创建一个新的主键值,将子表中要删除的记录的主键值改为这个新值,然后删除主表中原来的主键记录。

  5. 匿名用户2024-01-25

    我觉得不难,新建一个表,复制子表的数据,删除主表

  6. 匿名用户2024-01-24

    备份所需的表,然后一起删除主表和子表。

  7. 匿名用户2024-01-23

    删除主表中的记录时,必须先删除子表的记录,然后才能删除主表的记录。

    Oracle 数据库支持级联删除,但这取决于你的约束是如何构建的删除级联(级联删除)delete set null(删除主表,子表列设置 null)以上两种方式不设置,默认是不允许删除,必须按照以下方式删除主表的记录, 必须先删除子表的记录,然后才能删除主表的记录删除子表的记录时,可以直接删除。

  8. 匿名用户2024-01-22

    切记:如果删除了影响其他数据的数据,则无法删除该数据。

  9. 匿名用户2024-01-21

    如果两个表彼此具有主键约束和外键约束,请删除表表名级联约束。

  10. 匿名用户2024-01-20

    你说的恰恰相反,A可以删除,但是在删除主键表B之前,必须先删除A,并且可以设置级联删除以自动处理。

  11. 匿名用户2024-01-19

    方法一:从表 a 中删除表 a 将表 b b 连接起来

    方法二:从表A中删除名称(从表b中选择名称)。

    这样,您可以删除表A中的同名名称,而不会影响表B的内容。

  12. 匿名用户2024-01-18

    是的,必须先删除外部代码表中的数据,然后才能删除主代码表中的数据。

  13. 匿名用户2024-01-17

    如果要在一个方向上关联外键,请先删除子表,然后再删除父表。 命令为:

    drop table tablename;如果两个表彼此具有主外键,则命令为 drop tablename: cascade constraints。 仅删除其中一个表允许您同时删除两个表。

  14. 匿名用户2024-01-16

    主键和外键。

    删除必须级联以删除级联

  15. 匿名用户2024-01-15

    先删除外键,再删除主键,因为外键是靠主键构建的,就像剥橘子一样,要先扯外皮才能吃里面的肉(这个例子不太匹配,大概是意思,呵呵)。

    如果先删除主键,肯定会出现错误!

  16. 匿名用户2024-01-14

    有级联删除,即表A和表B是主表和从表的关系,当你删除主表A中的信息时,表B中的对应信息就会被自动删除,非常方便。

  17. 匿名用户2024-01-13

    删除表B中外键中的相关记录,然后删除表A中的记录。

  18. 匿名用户2024-01-12

    顺序如下:首先删除表A中的id字段数据记录,然后删除表B中与之相关的记录; 由于表 B 引用了表 A,因此如果先删除表 B 中的记录,则会发生外键引用约束错误。

    对不起,我弄错了,我应该先删除表B中的ID字段数据记录,然后再删除表A中与之相关的记录。

  19. 匿名用户2024-01-11

    没关系,只要你删除它就行。

    计算机中两个连续的命令几乎是同时完成的,没有太大区别。

    例如,从 where id=.... 中删除

    delete from b where id=...

    这样的陈述,如果它们彼此相邻,谁先来谁后都无关紧要。

  20. 匿名用户2024-01-10

    首先删除外键,然后删除主键,否则会遇到错误。

    根据你的例子,你需要先删除B中关于A的信息,然后你就可以删除A汇总的ID。

    如果你仔细想想,如果你先删除 A 中的某些内容,那么 Aid in B 中的一些外键将在一段时间内毫无意义。 如果你是 SQL 设计师,你认为这准确吗? 您可以自己构建一个简单的。

    他说什么并不重要,重要的是您在进行关联时选择了在属性中级联删除

  21. 匿名用户2024-01-09

    先删除子表,再删除主表。

  22. 匿名用户2024-01-08

    SQL 表通常包含外键关系,删除一个表中的数据会影响其他表。

    本节介绍删除主SQL键和外键的规则。

    删除规则和更新规则:

    指定当数据库的最终用户尝试删除或更新包含作为外键关系主题的数据的行时发生的情况。

    如果设置为:

    无操作:从主键表中删除或更新数据时,会显示一条错误消息,通知用户不允许删除或更新操作,并且删除或更新操作将回滚。

    级联:删除或更新包含外键关系中涉及的数据的所有行。

    注意:级联在 SQL Server 2000 中也称为级联。

    设置为空:这是 SQL Server 2005 中的一项新功能。 如果表的所有外键列都可以接受 null 值,请将该值设置为 null。

    作用:如果要将外键的删除规则和更新规则设置为“设置为空”,则外键必须为空字段。

    设置默认值:这是 SQL Server 2005 中的一项新功能。 如果已为表的所有外键列定义了默认值,请将该值设置为该列定义的默认值。

    注意:要将外键的删除规则和更新规则设置为“设置默认值”,外键必须是具有默认值的字段。

  23. 匿名用户2024-01-07

    -- 创建测试主节点。 id 是主键。

    create table test_main (

    id int not null,value varchar(10),primary key(id)

    --插入测试主数据。

    insert into test_main(id, value) values (1, 'one');

    insert into test_main(id, value) values (2, 'two');

    创建测试子表。 (请注意,此处有一个 on delete 级联)。

    create table test_sub (

    id int primary key,main_id int references test_main(id) on delete cascade,value varchar(10)

    --插入测试子表的数据。

    insert into test_sub(id, main_id, value) values (1, 1, 'oneone');

    insert into test_sub(id, main_id, value) values (2, 2, 'twotwo');

    测试删除主表。

    sqlite> delete from test_main where id = 1;

    检查子表的数据是否被删除。

    sqlite> select * from test_sub;

    2|2|twotwo

  24. 匿名用户2024-01-06

    如果要删除表,则会显示消息“无法删除对象”'orders'因为对象前面有一个外键

    约束引用“,你只需要通过系统函数,就能找到哪些表的外键引用了表的字段。 这句话就像航行一样:

    select,object_name( as referencetablename

    from as fk

    join as o on

    where '引用的表的名称'

    获取到外键名称后,可以使用以下语句删除外键(当然也可以手动到相关表中清除)。

    alter table dbo.引用的表的名称、删除约束和外键名称。

相关回答
13个回答2024-06-11

如果外链质量不好,就会有对象减少的可能,比如你在李吉潭的留言上有签名,如果帖子被删除,那么你的打扰留言就没了 查看原帖

12个回答2024-06-11

包容性下降的一些原因是什么? 我认为这是每个网站管理员都不想看到的。 当这种情况发生时,站长的第一感觉一定是**可能是k。 这时,站长应该去找相应的原因。 >>>More

13个回答2024-06-11

打开“设置”应用,然后点击“常规”。 转到“AssistiveTouch”选项并打开“AssistiveTouch”开关。 单击“小点”以替换主页按钮。

9个回答2024-06-11

随着统计学的普及,越来越多的人使用统计学。 使用站点语法的查询现在显示句子“此数字是估计值,如果管理员想要更准确地了解引入量,请使用统计信息。 为此,很多站长都安装了统计信息,但是使用后发现统计信息中显示的包含数量与网站语法查询的结果相差很大,那么我们是应该相信网站搜索的结果还是相信统计数据呢? >>>More

5个回答2024-06-11

这首歌是SHE和海飞伦演唱的《谢谢你的温柔》