`
myharmony
  • 浏览: 106072 次
  • 性别: Icon_minigender_1
  • 来自: 中山市
社区版块
存档分类
最新评论

Oracle中 级联删除和更新

阅读更多
在Oracle中使用on delete cascade 可以实现级联删除的操作
代码如下:

--create table a and b
Create Table department (dept_id   number (4) Not Null Primary Key, name      varchar2 (10), importdate date default sysdate);

Create Table employee (
                       emp_id       number (4) Not Null Primary Key,
                       dept_id      number (4),
                       name         varchar2 (10),
                       importdate   date default sysdate
                      );

Alter Table employee Add Constraint emp_fk Foreign Key (dept_id) References department(dept_id) on delete cascade;
commit;

级联更新如下:
create table a(
id number not null primary key deferrable,
modifydate date default sysdate
);

create table b(
id number not null primary key,
a_id number
constraint a_id_fk foreign key(a_id) references a(id) on delete cascade
);

create or replace trigger trg_b_a_id 
after update of id on a for each row
begin
  update b set a_id=:NEW.id where a_id=:OLD.id;
end;

SQL> select * from b;
        ID       A_ID
---------- ----------
         1          1
         2          4
         3          3


SQL> select * from a;
        ID NAME
---------- -------------
         1 test_1
         4 test_3
         3 test_2

SQL> update a set id=5 where id=1;

更新基本表后:
SQL> select * from a;
        ID NAME
---------- ------------
         5 test_1
         4 test_3
         3 test_2


SQL> select * from t;
        ID       A_ID
---------- ----------
         1          5
         2          4
         3          3
1
0
分享到:
评论

相关推荐

    解析Oracle中多表级联删除的方法

    方法一:创建约束时设定级联删除(但一般由于各种原因或出于各种考虑在创建数据库时没有设定级联删除)SQL语句: 代码如下:CREATE TABLE “U_WEN_BOOK”.”FARTAB” (“FAR_ID” NUMBER(10) NOT NULL,“FAR_NAME” ...

    Oracle数据库中的级联查询、级联删除、级联更新操作教程

    里整理了Oracle中的三种级联操作,其中Oracle定义外健的时候可以定义级联删除,但是没有级联修改的语法,当然可以用触发器实现,下面我们详细来看Oracle数据库中的级联查询、级联删除、级联更新操作教程

    oracle表空间替换转移级联删除脚本生成工具

    1.可以扫描oracle导出的dmp文件中的表空间信息,然后替换为指定的表空间名,要以将多个表空间名转换为一个表空间名 2.可以进行常规的一些导入导出新建数据库操作 3.可以生成包含子表的按条件删除的脚本,维护数据时...

    21天学通Oracle

    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 ...

    oracle_dynamic_sql.rar_Dynamic SQL ORAC_oracle_oracle dynam_orac

    介绍了在oracle里,如何使用动态SQL,如何进行级联删除,文件中举例阐述了实现方法

    数据库oracle 学习笔记重点总结

    数据库,oracle ,强制删除,系列,事物控制,级联删除,sql,sqlpuls

    非常全的oracle文档

    3.2. Oracle的卸载、删除 9 四、 Oracle体系结构 10 4.1. 体系结构 10 4.2. 会话 11 4.3. 内存结构 11 4.4. Oracle 实例进程结构 12 4.5. Oracle 物理组件 13 4.6. Oracle 逻辑组件 13 4.7. 模式 15 4.8. 数据文件...

    zhangsanlzh#Solutions#oracle常用操作命令1

    1、创建表空间 2、创建用户并授权 3、导出数据库到桌面 4、导入dmp文件到数据库 5、登录数据库 6、级联删除用户所有数据 7、删除表空间

    javaweb博客网站

    javaweb博客网站 1.用的struts2,数据库用的Oracle11g,DAO用的DBUtils,富文本用的百度的UEditor ...5.sql文件我用的Navicat导出的,导入好像有点问题,自己改一改吧,把注释和多于字符串什么的删除就行了

    jdbc基础和参考

    delete:在删除当前对象的时候,级联删除和他相关联的对象 all: save-update+delete delete-orphan:解除关联关系时,删除和当前对象失去关联的对象 all-delete-orphan:all+delete-orphan 单向的一对多的关系,在进行...

    sql总结.doc

    它还提供对基于游标位置而对表中数据进行删除或更新的能力 缺点: 处理大数据量时,效率低下,占用内存大 (6)什么时候选择使用游标? 一般是在循环处理的时候使用。 比如你判断一个班上的同学数学成绩怎么样,你...

    asp.net知识库

    Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...

    Java面试宝典2020修订版V1.0.1.doc

    5、用css3语法中,如何实现一个矩形框的圆角效果和50%红色透明效果?,请写出关键脚本 12 6、Div与Table的区别 13 7、行级标签转块级标签,块级标签转行级标签 13 二、Java基础部分 13 1、java中有哪些基本类型? 13...

    DBJ.jar:一个开放源代码库,用于替换本机JDBC协议,DBJ.jar可以轻松地通过某种方法连接到数据库,因此用户必须在功能中提供凭据和参数,DBJ才能处理其余部分(连接,驱动程序管理器,准备的声明,结果集等)

    DBJ.jar 一个用于替换本机...不具有连接对象的GetAll,具有/不具有连接对象的特定字段)@Overloading 更新类(尚未实施) 删除类(尚未实施) 触发器类(尚未实现) 事务的级联回滚(尚未实现)连接类(包com.dbj.con

    风越asp代码生成器 V3.5

    02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、...

    mysql数据库的基本操作语法

    级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on deletecascade 或on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。 create table student( id int...

Global site tag (gtag.js) - Google Analytics