Oracle Delete inner的方式,级联删除子表的数据方式。

例子1:

delete from table1 a where exists (select 1 from table2 b where a.id=b.id)

例子2:

rebatepolicy表是主表,rebatepolicyitems是从表,从表有主表的主键,现在对于主表一些条件的数据的对应子表要求删除。

如下方式:

delete from rebatepolicyitems rs where exists
(
      select 1
      from rebatepolicy r  where rs.rebateguid=r.rebateguid
      and to_char(r.createdate,‘yyyyMMdd‘)=‘20161219‘ and r.creator=‘名字‘
)
delete from table1 a where exists (select 1 from table2 b where a.id=b.id)
时间: 2024-12-11 20:19:02

Oracle Delete inner的方式,级联删除子表的数据方式。的相关文章

ITOO级联删除主从表

成绩系统有一个需求:数据字典有主从表,要求删除主表时候连同从表信息(跟牛腩中删除新闻时级联删除新闻评论相通),之前做好的那个版本中只删除主表数据,而且是按照主表数据的名称来删除,如果有重名的话还需做验证(感觉不太合理),现在需要做的是按照主表的ID来删除从表,主表的ID也能从页面拿到. 我的思路:主表的html中引用主从表两个js,主从表的调用的button的click方法名称相同,但结果它只能找到执行其中的一个方法,结果主表删除后从表没有反应. 后来李游给我思路:删除从表的js代码写在主表的触

删除大表的数据:普通删除语句和游标处理的比较

一.前言 WHERE条件用不到索引的情况下如何删除大表记录?文章中只是列举出其中一种方式而已,但仍然存在很多不严谨的地方.只是 轻描淡写随着数据表越来越大,历史数据的处理将越来越困难.且过滤字段没有索引(如时间)字段,而创建索引是需要临时表空间排序的.有越来越大,创建的维护工作也随之越来越难. 除了本文介绍的方法以外,还可以通过以下几种方法来维护历史数据: 1. 创建历史表,将历史数据定期移至历史表,让源表保持"瘦小身材"(源表会有碎片,需要定期对表和索引进行重建) 2. ORACLE

cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)

一 查看数据库.表.数据字段.数据 1 首先配置环境变量 进入mysql  或者通过一键集成工具 打开mysql命令行  或者mysql 可视化工具 打开命令行 进入这样的界面   不同的机器操作不同,这里就不一一描述了 2 查看当前所有的数据库 show  databases: 3 选择(进入) 数据库 use   数据库名: 4  查看当前数据库所有的表 show tables: 5 查看 某个表的字段结构 desc  表明: 6 查询表数据 select * from  表名: 二  新建

删除所有表的数据

/****** Object: StoredProcedure [dbo].[sp_DeleteAllData] Script Date: 06/24/2016 10:15:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[sp_DeleteAllData] AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT A

Oracle中用随机数更新字段----将一张表的数据插入另一张表----环境设置

DECLARE CURSOR recordCursor IS SELECT longitude,latitude FROM WR_WIUST_B_SEC FOR UPDATE; recordRow recordCursor % ROWTYPE; BEGIN OPEN recordCursor; LOOP FETCH recordCursor INTO recordRow; IF recordCursor % NOTFOUND THEN EXIT; ELSE UPDATE WR_WIUST_B_S

Oracle外键级联删除和级联更新

1 级联删除 Oracle在外键的删除上有NO ACTION(类似RESTRICT).CASCADE和SET NULL三种行为. 下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键. -- 班级表 CRATE TABLE TB_CLASS ( ID NUMBER NOT NULL, --班级主键 NAME VARCHAR2(50), --班级名称 CONSTRAINT PK_TB_CLASS PRIMARY KEY (ID) ); -- 学生表 CREATE TA

oracle系列--级联删除和级联更新

必须声明:此博客转载于Oracle外键级联删除和级联更新http://www.2cto.com/database/201507/417496.html 鉴于此前收藏的精彩博客无料被删除了,很是痛心,所以还是要复制一下 一.级联删除 Oracle在外键的删除上有NO ACTION(类似RESTRICT).CASCADE和SET NULL三种行为. 下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键. 1 -- 班级表 2 CRATE TABLE TB_CLASS 3

再谈Hibernate级联删除——JPA下的Hibernate实现一对多级联删除CascadeType.DELETE_ORPHAN

声明: 1.本文系原创,非抄袭或转载过来的. 2.本文论点都亲手做过实验论证. 3.本文所讲的Hibernate配置都基于注解的方式,hbm语法未提供. 非常多人对持久层概念搞不清JPA.Hibernate.EJB3.0的关系,这里做一下简单的说明:JPA是一个持久层设计接口,EJB3.0和Hibernate是详细的实现类,EJB3.0和Hibernate的功能近似相等的(Hibernate没有Session Bean,Spring MVC3的SessionAttribute跟Session B

Oracle之外键(Foreign Key)用法详解(二)- 级联删除(DELETE CASCADE)

Oracle外键(Foreign Key)之级联删除(DELETE CASCADE) 目标 示例讲解如何在Oracle外键中使用级联删除 什么是级联删除(DELETE CASCADE)? 级联删除是指当主表(parent table)中的一条记录被删除,子表中关联的记录也相应的自动删除. 外键的级联删除可以在创建表时定义,也可以使用ALTER TABLE语法定义. 创建表时定义级联删除 语法: CREATE TABLE table_name ( column1 datatype null/not