文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

级联truncate

2024-04-02 19:55

关注

12c之前的版本中,在子表引用一个主表以及子表存在记录的情况下,是不提供截断此主表操作的。而在 12c 中的带有 CASCADE 操作的TRUNCATE TABLE 可以截断主表中的记录,并自动对子表进行递归截断,并作为 DELETE ON CASCADE 服从外键引用。由于这是应用到所有子表的,所以对递归层级的数量是没有 CAP 的,可以是孙子表或是重孙子表等等。这一增强摈弃了要在截断一个主表之前先截断所有子表记录的前提。新的 CASCADE 语句同样也可以应用到表分区和子表分区等。
SQL> create table parent(id number primary key);

Table created.

SQL> create table child(cid number primary key,id number);

Table created.

SQL> insert into parent values(1);

1 row created.

SQL> insert into parent values(2);

1 row created.

SQL> insert into child values(1,1);

1 row created.

SQL> insert into child values(2,1);

1 row created.

SQL> insert into child values(3,2);

1 row created.

SQL> commit;

Commit complete.

SQL> select a.id,b.cid,b.id from parent a, child b where a.id=b.id;

    ID        CID         ID

     1          1          1
     1          2          1
     2          3          2

--添加约束,不附上 on delete cascade
SQL> alter table child add constraint fk_parent_child foreign key(id) references parent(id);

Table altered.

SQL> truncate table parent cascade;
truncate table parent cascade
*
ERROR at line 1:
ORA-14705: unique or primary keys referenced by enabled foreign keys in table
"HR"."CHILD"

SQL> col CONSTRAINT_NAME for a25;
SQL> col TABLE_NAME for a25;
SQL> col COLUMN_NAME for a25;
SQL> select CONSTRAINT_NAME,TABLE_NAME, COLUMN_NAME from user_cons_columns where TABLE_NAME='CHILD';

CONSTRAINT_NAME TABLE_NAME COLUMN_NAME


SYS_C0010458 CHILD CID
FK_PARENT_CHILD CHILD ID
-- 删除并添加约束,并附上 on delete cascade
SQL> alter table child drop constraint FK_PARENT_CHILD;

Table altered.

SQL> alter table child add constraint fk2_parent_child foreign key(id) references parent(id) on delete cascade;

Table altered.

SQL> truncate table parent cascade;

Table truncated.

SQL> select a.id,b.cid,b.id from parent a, child b where a.id=b.id;

no rows selected

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯