`

oracle数据库中表级联删除

阅读更多
数据库表中没有设置级联删除.怎样用SQL语句实现:
如:EMP表中有字段DEPT_NO是外键
   POS表中有字段DEPT_NO是外键
   DEPT表中有字段DEPT_NO,
如何实现删除DEPT表中数据时将EMP表,POS表中的相关数据也删除;

 

两种方法,个人建议你选择方法一,简单方便

方法一:触发器解决(下面的代码可以不用修改,copy直接用)
create or replace trigger delete_dept
before delete on DEPT
for each row
begin
 delete from EMP where DEPT_NO = :old.DEPT_NO;
 delete from POS where DEPT_NO = :old.DEPT_NO;
end;
/

方法二:修改你的外键设置,达到级联删除的目的,具体实现如下:
 a)先查询出EMP表和POS表中 外键的名称(如果你知道 外键名这一步可以省略)
 select CONSTRAINT_NAME,TABLE_NAME from user_constraints where CONSTRAINT_TYPE ='R' and TABLE_NAME in('EMP','POS');
 
 b)删除EMP表和POS表上的外键后 重新建立允许级联删除的外键模式
   alter table EMP drop constraint 外键名;
   alter table POS drop constraint 外键名;
   alter table EMP add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
   alter table POS add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
分享到:
评论

相关推荐

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

    Oracle数据库中的级联查询、级联删除和级联更新是数据库设计中常用的操作,它们用于在多表关联的关系型数据库中实现数据的联动处理。在Oracle中,这些操作主要涉及外键约束和触发器。 首先,级联查询是通过自连接来...

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

    在Oracle数据库中,多表级联删除是一种常见的需求,特别是在数据关系复杂的环境中。级联删除允许在删除一个表中的记录时,自动删除依赖于该记录的其他表中的相关记录。以下将详细介绍三种在Oracle中实现多表级联删除...

    Oracle数据库用户角色、表空间创建、删除命令

    - `CASCADE`:级联删除,即删除用户的同时也会删除该用户创建的所有对象,包括表、视图等。 #### 删除表空间 删除表空间前需确保该表空间未被任何用户使用: ```sql DROP TABLESPACE BCC INCLUDING CONTENTS AND ...

    oracle数据库相关练习与答案

    **解释:**这条命令将从`Employees`表中删除`pinglun`列,并且如果该列上有任何约束(如外键),则这些约束也会被级联删除。 ### 3. 插入数据 (INSERT) 使用`INSERT INTO`语句可以在表中插入一行或多行记录。 ###...

    Oracle数据库用户角色、表空间创建、删除命令.pdf

    表空间是Oracle数据库中的逻辑存储单元,每个表空间由一个或多个数据文件组成。表空间可以分为永久表空间和临时表空间两大类。创建表空间的命令如下: 1. **创建数据表空间**: ```sql CREATE TABLESPACE BCC ...

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

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

    Oracle数据库的日常使用命令

    Oracle数据库的日常使用命令涵盖了数据库管理员(DBA)和开发人员在日常工作中频繁使用的各种操作,以下是对这些命令的详细解析: ### 启动和关闭数据库 - **启动数据库**: 使用`sqlplus /nolog; SQL> conn / as ...

    oracle创建数据库表空间.doc

    Oracle 创建数据库表空间 Oracle 是一种流行的关系数据库管理系统,创建数据库表空间是 Oracle 数据库管理员的一项基本任务。本文将详细介绍如何在 Linux 环境下创建和删除 Oracle 表空间及用户。 一、创建临时表...

    oracle数据库还原

    其中`cascade`选项表示级联删除该用户的对象,即如果该用户拥有表或其他依赖项,这些对象也会被一同删除。 #### 四、删除表空间 表空间是Oracle数据库中存储数据的基本单位之一,有时候可能需要删除表空间来释放...

    Oracle数据库用户角色、表空间创建、删除命令.docx

    表空间是Oracle数据库中存储数据的基本单位,它由一个或多个数据文件组成。创建表空间的命令如下: ```sql CREATE TABLESPACE BCCdatafile 'D:\oracle\oradata\BCC\BCC.dbf' SIZE 100M AUTOEXTEND ON NEXT 32M ...

    Oracle数据库导图.pdf

    在逻辑层面,Oracle数据库由表空间、段、区和数据块组成。表空间是数据的逻辑容器,可以包含多个数据文件。段是特定类型的数据库对象(如表、索引)的逻辑存储单元。区是一组连续的数据块,而数据块是数据库的最小I/...

    ORACLE数据库习题.pdf

    17. **级联删除**:在Oracle中,如果在创建外键约束时使用了`ON DELETE CASCADE`,那么删除父表中的数据时,相关的子表数据也会被级联删除。 以上是对题目中涉及的Oracle数据库相关知识点的详细解释,这些知识点...

    oracle数据库权限管理

    2. **对象权限**:与系统权限不同,对象权限允许用户对特定数据库对象进行操作,例如读取(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)表中的数据,或者创建索引(CREATE INDEX)等。对象权限只能在...

    Oracle数据库管理语句

    在Oracle数据库管理中,数据操作语句是核心技能之一,它们包括插入(Insert)、更新(Update)、删除(Delete)、事务处理(Database Transaction)、锁(Lock)、以及表(Table)的管理等关键操作。本文将深入解析...

    oracle数据库的赋权脚本

    在Oracle数据库管理中,赋权脚本是一种关键的工具,用于定义和实施用户权限和角色管理。通过使用SQL语句,这些脚本可以精确地控制谁可以访问什么资源,以及他们能够执行的操作类型。以下是对给定脚本中涉及的关键...

    PostgreSQL MySQL Oracle数据库设计优化完美攻略

    我们需要谨慎地使用级联删除和级联更新,以免数据莫名其妙地被修改或丢失。 5. 字段设计 字段是数据库最基本的单位,其设计对性能的影响非常大。我们需要注意使用合适的数据类型、避免使用NULL、少用TEXT和IMAGE...

    ORACLE数据库文档.txt

    以上就是从给定的文件标题、描述、标签及部分内容中提取并总结的相关Oracle数据库操作知识点,涵盖了表空间管理、用户管理、权限分配、数据导入导出、表操作以及数据查询等多个方面,希望对读者理解和掌握Oracle...

Global site tag (gtag.js) - Google Analytics