a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 109|回复: 0

[综合] Oracle进行删除操作的方法分析

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
删除表(记实和结构)的优缦沱delete ———— truncate ———— drop   DELETE (删除数据内外记实的语句)0 j6 E- ]& s3 z/ D& |, e' X
  DELETE FROM表名 WHERE 前提;& U, i5 m' P& C0 \/ a
  注重:删除记实并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.
4 g$ P( ]* s; a% q+ \  如不美观确实要删除一个年夜内外的全数记实, 可以用 TRUNCATE 呼吁, 它可以释放占用的数据块表空间, |; X0 L. E0 M4 ~
  TRUNCATE TABLE 表名;3 \0 l5 g4 j# l# }0 }% o3 P7 i$ C
  此操作不成回退.( \# i8 h1 s0 c) i8 V6 s
  不异点
. }0 V% }# p  G/ d5 ~  truncate和不带where子句的delete, 以及drop城市删除表内的数据- j7 h7 L1 K. N* u  m7 _- P
  注重:这里说的delete是指不带where子句的delete语句0 p6 g1 N  j4 a6 u! W
  分歧点:+ W& ?8 y' [" A2 i
  1. truncate和 delete只删除数据不删除表的结构(界说)* j: \: Y- i$ V! H1 c
  drop语句将删除表的结构被依靠的约束(constrain),触发器(trigger),索引(index); 依靠于该表的存储过程/函数将保留,可是变为invalid状况.9 F" v# l  ?. l
  2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如不美观有响应的trigger,执行的时辰将被触发.' C7 K" H; l- m  O% Z
  truncate,drop是ddl, 操作当即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
6 }9 t  V6 w6 I2 C! w8 t/ @* n  3.delete语句不影响表所占用的extent, 高水线(high watermark)连结原位置不动
1 r" b; Y5 W, y& T0 K$ A  显然drop语句将表所占用的空间全数释放
$ h, I' j+ b4 A' w) F  truncate 语句缺盛意形下见空妓晔着到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最起头).6 I! a/ O/ V' \: v8 y
  4.速度,一般来说: drop>; truncate >; delete: B5 T2 g+ u/ Y$ g$ n$ w1 F
  5.平安性:小心使用drop 和truncate,尤其没有备份的时辰.否则哭都来不及
, {3 {, R$ g4 i5 o" K: L: m- I) I5 T  使用上,想删除部门数据行用delete,注重带上where子句. 回滚段要足够年夜.
5 |3 ~( {+ k4 }, o( }4 C  想删除表,当然用drop
& s6 O1 b2 b) M: B4 z. x  想保留表而将所稀有据删除. 如不美观和事务无关,用truncate即可. 如不美观和事务有关,或者想触发trigger,仍是用delete.
" e1 V) r/ s' x3 V9 O$ M8 J  如不美观是清算表内部的碎片,可以用truncate跟上reuse stroage,再年夜头导入/插入数据" V" Y5 l0 y) z3 i1 f! `7 j
  oracle中删除表中的一列语句
' g  i. l! W, j8 b3 R$ g2 u  alter table 表名 drop colum 列名
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-28 05:38 , Processed in 0.266755 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表