Oracle 12C -- truncate的级联操作

在之前的版本中,存在外键约束时,无法直接truncate父表。在12C中,对truncate操作添加了级联操作特性。

前提是创建外键约束时,使用了"on delete casacde"。

测试脚本:

SQL> drop table child;
SQL> drop table parent;
SQL> create table parent(id number primary key);
SQL> create table child(cid number primary key,pid number);
SQL> alter table child add constraint fk_parent_child foreign key(pid) references parent(id) on delete cascade;
SQL> insert into parent values(1);
SQL> insert into parent values(2);
SQL> insert into child values(1,1);
SQL> insert into child values(2,1);
SQL> insert into child values(3,2);
SQL> commit;
SQL> select a.id,b.cid,b.pid from parent a, child b where a.id=b.pid;

        ID        CID        PID
---------- ---------- ----------
         1          1          1
         1          2          1
         2          3          2

SQL> 

11gR2的测试结果:

SQL> truncate table parent cascade;
truncate table parent cascade
                      *
ERROR at line 1:
ORA-03291: Invalid truncate option - missing STORAGE keyword

SQL>

12C的测试结果:

SQL> truncate table parent cascade;

Table truncated.

SQL>
时间: 2024-10-03 01:12:19

Oracle 12C -- truncate的级联操作的相关文章

Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)

实验准备:-- 创建实验表CREATE TABLE p_andy(ID number(10), NAME varchar2(40))PARTITION BY RANGE (id)(PARTITION p1 VALUES LESS THAN (10),PARTITION p2 VALUES LESS THAN (20));Table created.-- 查看现在表的分区:SQL> col table_name for a25col partition_name for a25select tab

oracle级联操作

在添加foreing key约束时,还可以指定级联操作的类型,主要用于确定当删除(on delete) 附表中的一条记录时,如何处理子表中的外键字段,有如下三种引用类型. cascade此关键字用于表示当删除主表中被引用列的数据时,将子表中相应应用列的值置为null值,这种情况要求子表中的引用列支持null值set null此关键字用于当删除主表中被引用列的数据时,将子表中相应引用列的值设置为null值.这种情况要求子表中的应用列支持null值.not action此关键字用于表示当删除主表中被

Oracle 12c 操作 CDB PDB

CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs; / alter pluggable database all open alter pluggable database all close; alter session set container = pdbmyoracle;

使用hibernate作为底层,jquery实现级联操作(附带oracle数据库)

原文:使用hibernate作为底层,jquery实现级联操作(附带oracle数据库) 源代码下载地址:http://www.zuidaima.com/share/1564685226675200.htm 为了减轻压力,项目中的hibernate jar包已经删除.请自行增加即可正常运行.若没有jar包请在官方群:南京-木木-11187  或者私信我索要. 备注:数据库在项目根目录的db文件夹下,双击run.bat即可导入.(PS:请用文本文档打开看下用户名和密码是否和你的一致.)如果出现不懂

oracle 12c 初步操作

查看是否为cdb SQL> select name,cdb,open_mode,con_id from v$database; NAME CDB OPEN_MODE CON_ID --------------------------- --------- ------------------------------------------------------------ ---------- ORCL12C YES READ WRITE 0 查看当前容器 SQL> show con_nam

Oracle 12c RAC 替换 OCR 磁盘组操作步骤

注:本文谢绝转载! 为方便以后的测试,整了一套新的测试环境,600G PCIe 闪存卡+8核CPU+16G内存.  把整个虚拟机从我的电脑上直接copy 过去,网络什么都没问题,但是RAC 的共享设备是重新添加的. 这样之前旧的数据都不存在. 所以用脚本直接重建了OCR和Voting Disk,RAC 启动,没有问题,但是磁盘组出现错乱,Dave 有强迫症的倾向,所以重新重新添加了一个磁盘组.  把OCR 和 voting disk 都替换到新创建的OCR 磁盘组了. 所以以下所有的操作,只为一

Oracle 12c新特性对于业务上的一些影响总结

1.不可见字段 在Oracle 11g R1中,Oracle以不可见索引和虚拟字段的形式引入了一些不错的增强特性.继承前者并发扬光大,Oracle 12c R1中引入了不可见字段思想.在之前的版本中,为了隐藏重要的数据字段以避免在通用查询中显示,我们往往会创建一个视图来隐藏所需信息或应用某些安全条件. 在12c R1中,你可以在表中创建不可见字段.当一个字段定义为不可见时,这一字段就不会出现在通用查询中,除非在SQL语句或条件中有显式的提及这一字段,或是在表定义中有DESCRIBED.要添加或是

Oracle 12C 新特性之 恢复表

RMAN的表级和表分区级恢复应用场景: 1.You need to recover a very small number of tables to a particular point in time. In this situation, TSPITR is not the most effective solution because it moves all the objects in the tablespace to a specified point in time.2.You

【转载】Oracle ACE总监对Oracle 12c的一些新特性总结

本文是Oracle ACE总监Syed Jaffer Hussain对Oracle数据库12c的一些新特性总结,包括数据库管理.RMAN.高可用性以及性能调优等内容. 主要内容:1. 在线迁移活跃的数据文件2. 表分区或子分区的在线迁移3. 不可见字段4. 相同字段上的多重索引5. DDL日志6. 临时undo7. 新的备份用户特权8. 如何在RMAN中执行SQL语句9. RMAN中的表级别恢复10. PGA的大小限制问题11. 对表分区维护的增强12. 数据库升级的改进13. 通过网络恢复数据