mdsk.net
当前位置:首页 >> orAClE高效DElEtE语句 >>

orAClE高效DElEtE语句

建立一个触发器就可以了.create or replace trigger tri_delbefore delete on 父表for each rowbegin delete from 子表 where col=:old.col; //这里col指的是子表参考了外键的属性列end;/

方法1:使用logminer工具 优点:可以完全挖掘日志内容,找出所有执行过的sql语句 缺点:1. 如果没有启用归档日志,则只能对联机日志进行挖掘2. 需要掌握logminer的用法 访法2:查看hist视图 优点:简单,只要使用普通的select语句查询 缺

删除满足条件的行: delete from table_name where your_conditions; commit;删除表中的全部数据: trancate table table_name; 删除表: drop table table_name;

如果你是要删除2长表里的数据,可以分步做啊:delete from a where a.ida=1; delete from b where b.idb=1; commit; 像你那种做法,是不可行的,不符合oracle的语法.oracle只允许从一张表中删除数据.你是不是想删除A表中的数据(B表不变),但要这些数据存在于B表中,可以使用:DELETE FROM a WHERE (a.ida, a.name) IN (SELECT a.ida, a.name FROM a ,b where a.ida=b.idb); COMMIT; 这些语句我都在oracle92中测试过,不知道你究竟需要做什么?

delete from f_kpi_target where (chnl_cod ,orgcod) in (SELECT trim(T1.CHNL_COD),trim(T1.ORGCOD) FROM f_kpi_target2 t1);我已经试过了,加了括号就可以了.

delete from temp_5 a where exists (select 1 from temp_3 b where a.id5=b.id3)注:temp_5的id5字段和temp_3的id3字段要建索引

oracle中删除一个表的语句如下:1. 首先你有drop的权限.2. drop table 用户表明 ;3. 举例 :drop table scott.tableA.4. 如2楼所说,看是否有外键约束,否则你是删不掉的.

数据量较大没有快速的方法,除非是清空表,可用truncate的方式来删除. 如,要删除表名为test中的所有数据,可用:truncate table test; truncate与delete的异同: TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者

Oracle数据删除语句--查看当前SCN数值 SELECT dbms_flashback.get_system_change_number from dual;--Scn与时间的对应关系 SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss', to_char(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_

truncate要比delete快的多,大数量下很明显,主要原因是truncate是整体性删除,而delete是一条条来删除的

wlbx.net | nwlf.net | sytn.net | sytn.net | zxsg.net | 网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com