`

Oracle级联删除

阅读更多

--创建基表
CREATE TABLE zyl_test(CODE VARCHAR2(10),NAME VARCHAR2(20));
--创建外键关联表
CREATE TABLE zyl_test_fk(ID VARCHAR2(10),NAME VARCHAR2(20));

--方案一:创建外键时,添加ON DELETE CASCADE,级联删除
ALTER TABLE zyl_test_fk ADD CONSTRAINTS fk_test FOREIGN KEY(ID) REFERENCES zyl_test(CODE) ON DELETE CASCADE;

--方案二:创建触发器
ALTER TABLE zyl_test_fk ADD CONSTRAINTS fk_test FOREIGN KEY(ID) REFERENCES zyl_test(CODE);

--触发器
CREATE OR REPLACE TRIGGER DEL_OTHERS
  BEFORE DELETE ON ZYL_TEST
  FOR EACH ROW
BEGIN
  DELETE FROM ZYL_TEST_FK WHERE ID = :OLD.CODE;
END;

--初始化数据
INSERT INTO zyl_test VALUES('11','name');
INSERT INTO zyl_test_fk VALUES('11','name');
--查询数据
SELECT * from zyl_test;
SELECT * from zyl_test_fk;

--删除外键
ALTER TABLE zyl_test_fk DROP CONSTRAINTS  fk_test;
--删除触发器
DROP TRIGGER DEL_OTHERS;
--删除数据
DELETE FROM zyl_test WHERE CODE = '11';

分享到:
评论

相关推荐

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

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

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

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

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

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

    oracle_dynamic_sql.rar_Dynamic SQL ORAC_oracle_oracle dynam_orac

    本文将深入探讨动态SQL的使用及其在级联删除中的应用。 首先,让我们理解什么是动态SQL。在静态SQL中,SQL语句在编译时就已经确定。然而,动态SQL允许我们在程序执行时构建SQL语句,这意味着SQL的结构可以在运行时...

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

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

    韩顺平老师oracle视频教程听课笔记

    `CASCADE`选项用于级联删除依赖对象。 - **用户管理综合案例** - 创建的新用户默认没有任何权限,需要授予相应的权限。 - 示例:`GRANT CONNECT TO xiaoming;` - 注意:`CONNECT`不是一个简单的权限,而是一个...

    oracle创建删除表空间和用户授权

    - `CASCADE CONSTRAINTS`表示级联删除依赖于该表空间的所有约束条件。 ### 二、创建与管理用户 #### 1. 创建用户 ```sql CREATE USER oa1 IDENTIFIED BY oa DEFAULT TABLESPACE poba TEMPORARY TABLESPACE temp; `...

    Oracle创建删除用户.docx

    删除Oracle用户及其所有对象,应使用`CASCADE`参数,确保级联删除所有相关对象: ```sql DROP USER 用户名 CASCADE; ``` 删除表空间时,需确保该表空间未被其他用户使用,且可能需要包含`INCLUDING CONTENTS`和`...

    oracle10g教程从入门到精通

    - 如果用户已经创建了表等对象,删除时需要带上 `cascade` 参数以级联删除所有依赖的对象。 - **用户权限管理** - 创建的新用户默认没有任何权限,需要通过 `grant` 命令为其分配相应的权限。 - 示例:`grant ...

    Oracle学习笔记 Oracle学习笔记

    `cascade`选项用于级联删除依赖于该用户的对象。 2. **密码管理** - 修改密码:使用`.password`命令修改密码,具体操作可能需要查看上下文环境中的实现细节。 3. **权限管理** - 权限授予:`grant permission to...

    oracle大作业.doc

    触发器可以实现级联更新、级联删除等操作。 数据库设计 数据库设计是数据库开发的基础。数据库设计需要根据业务需求、数据模型、数据库架构等进行设计。ER图是数据库设计的重要工具。数据模型需要根据业务需求、...

    ORACLE与SQLSERVER的区别

    SQL Server 的外键约束支持级联删除和级联更新,而 Oracle 只支持级联删除。创建外键约束时,两个系统都有相应的语法,但在级联操作上有所不同。 以上只是 Oracle 和 SQL Server 在几个关键方面的对比,实际上,...

    oracle(浪潮内部培训)

    通过使用触发器,你可以实现复杂的数据完整性规则,比如级联更新或删除,或者在数据更改前后执行某些业务逻辑。在培训中,你将学习如何创建、修改和删除触发器,以及如何调试和优化触发器性能。 三、存储过程 存储...

    oracle与sql_server的区别

    在处理外键约束时,SQL Server允许级联删除和级联更新,而Oracle仅支持级联删除。这意味着在SQL Server中,当主表中的记录被删除或更新时,依赖的子表记录也可以自动进行相应的更新或删除,提供了更强大的数据完整性...

    java培训oracle实用课件

    - **删除用户**:一般由`dba`用户执行,使用`drop user`语句,可能需要添加`cascade`选项以级联删除用户所拥有的所有对象。 ### 用户权限与角色 在Oracle中,用户权限分为两大类:系统权限和对象权限。系统权限如`...

    oracle10g 使用总结,灰常详细

    - **删除用户**:使用`drop user`命令,可能需要`cascade`选项来级联删除用户所拥有的对象。 - **权限管理**:新创建的用户无任何权限,需要通过`grant`命令分配权限,例如`grant connect to 用户名`。需要注意的是...

    韩顺平.oracle实用教程(免费下载).

    - 若用户已创建表,则需使用`cascade`选项来级联删除依赖的对象。 - **用户权限管理**: - 创建的新用户通常没有权限,需要通过`GRANT`命令为其分配权限。 - 示例命令:`grant connect to 用户名`。 - `connect...

Global site tag (gtag.js) - Google Analytics