在加入foreing key约束时,还能够指定级联操作的类型,主要用于确定当删除(on delete) 附表中的一条记录时,怎样处理子表中的外键字段,有例如以下三种引用类型。



cascade

此keyword用于表示当删除主表中被引用列的数据时,将子表中对应应用列的值置为null值,这样的情况要求子表中的引用列支持null值

set null

此keyword用于当删除主表中被引用列的数据时。将子表中对应引用列的值设置为null值。

这样的情况要求子表中的应用列支持null值。

not action

此keyword用于表示当删除主表中被引用的数据时,假设子表的引用列种包括该值,则禁止操作运行。

默觉得该选项。



详细的操作例如以下:

SQL> create table stuclass(

  2  cid number(4) primary key,

  3  cname varchar2(40),

  4  num number(4)

  5  );

表已创建。

SQL> create table stu(

  2  sid number(4),

  3  scode varchar(10),

  4  sname varchar(20),

  5  cid number(4) references stuclass(cid) on delete set null

  6  );

表已创建。

SQL> insert into stuclass values(1,'oracle',35);

已创建 1 行。

SQL> insert into stu values(1,'s001','aaa',1);

已创建 1 行。

SQL> delete stuclass where cid=1;

已删除 1 行。

SQL> select * from stuclass;

未选定行

SQL> select * from stu;

       SID SCODE      SNAME                       CID

---------- ---------- -------------------- ----------

         1 s001       aaa

SQL>

oracle级联操作的更多相关文章

  1. Oracle 12C -- truncate的级联操作

    在之前的版本中,存在外键约束时,无法直接truncate父表.在12C中,对truncate操作添加了级联操作特性. 前提是创建外键约束时,使用了"on delete casacde&quo ...

  2. JPA学习---第九节:JPA中的一对多双向关联与级联操作

    一.一对多双向关联与级联操作 1.创建项目,配置文件代码如下: <?xml version="1.0" encoding="UTF-8"?> < ...

  3. oracle级联更新与级联删除

    Oracle级联删除:可以使用外键约束来实现,建立表的主外键关系,给列设置级联删除.如下: ——创建了CLASS表,并设置ID字段为主键. -- Create tablecreate table CL ...

  4. [原创]关于Hibernate中的级联操作以及懒加载

    Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...

  5. Java三大框架之——Hibernate关联映射与级联操作

    什么是Hibernate中的关联映射? 简单来说Hibernate是ORM映射的持久层框架,全称是(Object Relational Mapping),即对象关系映射. 它将数据库中的表映射成对应的 ...

  6. Hibernate(八)__级联操作、struts+hibernate+接口编程架构

    级联操作 所谓级联操作就是说,当你进行主对象某个操作时,从对象hibernate自动完成相应操作. 比如: Department <---->Student 对象关系,我希望当我删除一个d ...

  7. [转]Oracle 树操作(select…start with…connect by…prior)

    转自http://www.cnblogs.com/linjiqin/archive/2013/06/24/3152674.html Oracle 树操作(select-start with-conne ...

  8. 【EF学习笔记10】----------主从表级联操作

    主从表 级联新增 Console.WriteLine("=========主从表 级联新增=========="); using (var db = new Entities()) ...

  9. Oracle列操作(增加列,修改列,删除列)

    Oracle列操作 增加一列: alter table emp4 add test varchar2(10); 修改一列: alter table emp4 modify test varchar2( ...

随机推荐

  1. Kafka详解与总结(一)

    1. Kafka概述 1.1. 消息队列 1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推 ...

  2. C# linq学习【转】

    在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...

  3. 3 工欲善其事必先利其器,C#开发环境准备

    1.       为什么选择C#作为入门的编程语言开始学习? Java和C#是比较主流的两大开发语言.(除了这两种还有什么比较流行的开发语言?)相对于Java,C#的入门要容易一些.学习java开发需 ...

  4. MVC系列学习(五)-传递数据 与 接收数据

    1.控制器向视图传递数据 a.使用ViewData b.使用ViewBag c.使用Model 方式二: d.使用TempData 2.为什么在控制器中设置了一些属性,在视图中可以接受 3.Actio ...

  5. CxImage实现9PNG

    CxImage* ScaleImageBy9PNG(CxImage *pRawImage, int nDstWidth,int nDstHeight) { if(NULL == pRawImage) ...

  6. Microsoft SQL Server学习(二)--数据库的语法

    关于数据库的语法 创建数据库 样例 名词概念 编写数据库代码的注意事项 关于文件语法 实例代码 关于数据库的语法: 1.创建数据库 create database 数据库名 on primary (主 ...

  7. JS——滚动条

    1.核心思想与之前的拖拽盒子是一样的 2.完全将鼠标在盒子中的坐标给滚动条是错的,因为这样会使滚动条顶部立刻瞬间移动到鼠标位置 3.必须在鼠标按下事件时记住鼠标在滚动条内部的坐标,再将鼠标在盒子中的坐 ...

  8. vim下阅读代码时标签跳转设置

    1.在fedora14中的 /etc/vimrc下,加入如下几行,可根据源代码工程文件的结构来定 2. 在源代码工程内,输入如下命令 ctags -R 当前目录下将生成一个tags文件 3.查看源代码 ...

  9. Origin C调用NAG库

    NAG(Numerical Algorithms Group, www.nag.com)库是一个无与伦比的算法库,它提供的算法可靠.轻便.严谨,覆盖了数学与统计方方面面.最大的缺点就是:它是一个收费的 ...

  10. css中有些属性的前面会加上“*”或“_(兼容IE浏览器)

    给不同浏览器识别: color{ background-color: #CC00FF; /*所有浏览器都会显示为紫色*/ background-color: #FF0000\9; /*IE6.IE7. ...