Oracle外键级联删除和级联更新
Oracle在外键的删除上有NO ACTION(类似RESTRICT)、CASCADE和SET NULL三种行为。
1.1 NO ACTION
NO ACTION指当删除主表中被引用列的数据时,如果子表的引用列中包含该值,则禁止该操作执行。
现在学生外键级联删除是NO ACTION,执行删除班级操作
Oracle会提示违反完整性约束: ORA-02292
1.2 SET NULL
SET NULL指当删除主表中被引用列的数据时,将子表中相应引用列的值设置为NULL值。SET NULL有个前提就是外键引用列必须可以设置为NULL。
把学生表(TB_STUDENT)的外键删除行为改为SET NULL。ORACLE似乎没有MODIFY CONSTRAINT操作,只能先删除外键,然后创建新的。
1.3 CASCADE
CASCADE指当删除主表中被引用列的数据时,级联删除子表中相应的数据行。
把学生表(TB_STUDENT)的外键删除行为改为CASCADE。
相关推荐
在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior ...
创建数据库时为了防止其他人不小心删除操作错误, 所有的外键都没有加级联删除。哪知,不知什么时候自己入了一批错误的数据进去,入库使用的是软件自动的,一下点错给自己带来无尽麻烦啊,删除就不好办了
6.2.3 级联更新与级联删除 100 6.2.4 修改外键属性 102 6.2.5 外键使用 104 6.3 唯一性约束 105 6.3.1 唯一性约束简介 105 6.3.2 创建唯一性约束 105 6.3.3 修改唯一性约束 107 6.3.4 唯一性约束的使用 108 ...
8.3.2 DEFERRABLE约束和级联更新 261 8.4 不好的事务习惯 263 8.4.1 在循环中提交? 264 8.4.2 使用自动提交? 270 8.5 分布式事务 271 8.6 自治事务 273 8.6.1 自治事务如何工作? 273 8.6.2 何时使用自治事务?...
Oracle 最常用的命令 1.登陆系统用户 :sqlplus 然后输入系统用户名和密码 登陆别的用户 : conn 用户名/密码; 2.创建表空间 create tablespace 空间名 datafile 'c:\空间名' size 15M --表空间的存放路径,...
3.数据库没设计好,外键直接引用的主键属性,所以没做级联更新 4.其实这个项目是个团队作业,组员水平不一,所以写的简单,适合初学者学习,高手勿喷 5.sql文件我用的Navicat导出的,导入好像有点问题,自己改一改吧...
delete:在删除当前对象的时候,级联删除和他相关联的对象 all: save-update+delete delete-orphan:解除关联关系时,删除和当前对象失去关联的对象 all-delete-orphan:all+delete-orphan 单向的一对多的关系,在进行...
很奇怪),分别是CascadeType.PERSIST(级联新建),CascadeType.REMOVE(级联删除),CascadeType.REFRESH(级联刷新),CascadeType.MERGE(级联更新),CascadeType.ALL(全部四项) * 方法一 * 主表: ?@OneToOne...
源代码和有关更新.......................................................................... 29 勘误表....................................................................................... 29 配置环境....
级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on deletecascade 或on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。 create table student( id int...
它还提供对基于游标位置而对表中数据进行删除或更新的能力 缺点: 处理大数据量时,效率低下,占用内存大 (6)什么时候选择使用游标? 一般是在循环处理的时候使用。 比如你判断一个班上的同学数学成绩怎么样,你...
12、主键和外键的区别? 44 13、在数据库中查询语句速度很慢,如何优化? 44 14、数据库三范式是什么? 44 15、union和union all有什么不同? 45 16、char、varchar2、varchar有什么区别? 45 17、Oracle和Mysql的区别...