Oracle 删除数据的几种方法.doc

Oracle 删除数据的几种方法.doc

ID:57689473

大小:17.50 KB

页数:2页

时间:2020-09-01

Oracle 删除数据的几种方法.doc_第1页
Oracle 删除数据的几种方法.doc_第2页
资源描述:

《Oracle 删除数据的几种方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、删除表(记录和结构)的语名delete  ————  truncate     ————drop  DELETE(删除数据表里记录的语句)  DELETEFROM表名WHERE条件;  注意:删除记录并不能释放ORACLE里被占用的数据块表空间.它只把那些被删除的数据块标成unused.  如果确实要删除一个大表里的全部记录,可以用TRUNCATE命令,它可以释放占用的数据块表空间  TRUNCATETABLE表名;  此操作不可回退.  相同点  truncate和不带where子句的delete,以及drop都会删除表内的数据  注意:1.

2、这里说的delete是指不带where子句的delete语句2.在存储过程中默认是不允许执行truncatetabletablename操作的,所以要使用execute immediate'truncatetabletablename';例如:[sql] viewplaincopyprint?1.CREATE OR REPLACE PROCEDURE proc_delete_all_data  2.IS  3.BEGIN  4.   execute immediate 'truncate table T_FLOW_ACCOUNT';  5.  

3、 execute immediate 'truncate table T_FLOW_MERCHANT';  6.END proc_delete_all_data;    不同点:  1.truncate和delete只删除数据不删除表的结构(定义)  drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态.  2.delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigge

4、r,执行的时候将被触发.  truncate,drop是ddl,操作立即生效,原数据不放到rollbacksegment中,不能回滚.操作不触发trigger.  3.delete语句不影响表所占用的extent,高水线(highwatermark)保持原位置不动  显然drop语句将表所占用的空间全部释放  truncate语句缺省情况下见空间释放到minextents个extent,除非使用reusestorage;  truncate会将高水线复位(回到最开始).  4.速度,一般来说:drop>;truncate>;delete  5.

5、安全性:小心使用drop和truncate,尤其没有备份的时候.否则哭都来不及  使用上,想删除部分数据行用delete,注意带上where子句.回滚段要足够大.  想删除表,当然用drop  想保留表而将所有数据删除.如果和事务无关,用truncate即可.如果和事务有关,或者想触发trigger,还是用delete.  如果是整理表内部的碎片,可以用truncate跟上reusestroage,再重新导入/插入数据  oracle中删除表中的一列语句  altertable表名dropcolum列名

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。