1.delete/truncate只删除数据不删除表,索引的结构。drop将删除表的结构及依赖的index/constrain/trigger,依赖于该表的procedure/function将保留,但是变为invalid状态;
2.delete是dml,写rollbacksegement,可回滚,速度慢,事务提交之后才生效。在9i满足undo_retention条件下可使用flashback。一次性大批量数据的delete可能导致回滚段急剧扩展从而影响到数据库,慎用,触发trigger。truncate/drop是ddl,隐式提交,不写rollbacksegment,不能回滚,速度快。9i不能使用flashback,不触发trigger;
3.delete不影响表所占用的extent,HWM保持原位置不动,即使删除的是最靠近HWM的数据。delete其实也可以释放空间,但是不降低HWM,delete后block的空闲空间达到pct_used,就可以重用。truncate缺省情况下将空间(表和索引)释放到minextents个extent,除非使用reusestorage。truncate会将高水线复位(回到最开始)。drop将表所占用的空间全部释放,segment不存在,无所谓HWM的概念;
Oracle高水位(HWM)
http://blog.csdn.net/xujinyang/article/details/6830245
4.truncate/drop的对象必须是本模式下的,或者被授予dropanytable的权限,但dropanytable权限不能truncate/dropsys的表。delete的对象必须是本模式下的,或者被授予deleteonSCHEMA.table或deleteanytable的权限,但deleteanytable权限不能deletesys的表;
5.不能truncate一个带有enable外键的表,不管表里有没有数据,如果要truncate,首先要disable外键或者删除外键(drop外键的表肯定是删除了外键)。不能drop一个带有enable外键的表,不管表里有没有数据,如果要drop,首先要删除外键,或者直接用droptableTABLE_NAMEcascadeconstraints;级联删除外键。delete可以。
转载自网络
------------------------------------------------------------------------------
分享到:
相关推荐
delete,truncate和drop的区别
详细阐述了Oracle中三种删除的方式truncate,drop和delete三者的区别和联系.
SQL语句中----删除表数据drop、truncate和delete的用法,对你爱不完
利用oracle 系统触发器防止用户使用drop table 或truncate table 命令。
因此,在由于各种原因引起的数据库不能打开或者数据库中的表被DROP,TRUNCATE,DELETE后,而且没有备份的情况下,使用Dbseeker能够及时找回数据表记录。 最新版本请访问http://www.dbseeker.com 2015/12/05 Dbseeker...
闪回各种误删除操作:truncate、drop、delete。
因此,在由于各种原因引起的数据库不能打开或者数据库中的表被DROP,TRUNCATE,DELETE后,而且没有备份的情况下,使用Dbseeker能够及时找回数据表记录。最新版本请访问作者网站http://www.dbseeker.com
对Oracle各种恢复进行测试汇总,包括delete、update、drop、insert、truncate、init文件、临时文件、数据文件等。
sql>drop table test c、表空间的创建、删除 六、ORACLE逻辑备份的SH文件 完全备份的SH文件:exp_comp.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/...
oracle认证教程,从入门到高级,• 数据查询:select • DML(data manipulation language): ...create、alter、drop、rename、truncate • 事务控制:commit、rollback、savepoint • DCL(数据控制语言):grant、revoke
区分delete,drop,truncate?(面试题)3.常见命令:4.Oracle数据库的数据类型:5.null:6.nvl(字段1,值1): 1.Oracle数据库语言分类: 1)DDL:数据定义语言,对数据结构起作用 create:创建某对象 alter:修改某对象 ...
误区 #19:Truncate表的操作不会被记录到日志 错误 在用户表中的操作都会被记录到日志。在SQL Server中唯一不会被记录到日志的操作是TempDB中的行版本控制。 Truncate Table语句会将整个表中的所有数据删除。但删除...
§1.3.1 SQL和SQL*PLUS的差别 25 §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用SQL*PLUS 附加命令简介 32 §1.5.1 登录到SQL*PLUS 32 §...
1.什么是ORACLE锁 数据库是一个多用户使用的共享... 6 X(Exclusive) 排它锁 Alter table、Drop able、Drop index、Truncate table 、Lock exclusive Oracle举例 欢迎登陆交流 程序员百味: http://www.bywei.cn/blog
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
7、drop,delete与truncate的区别? 8、mysql有哪几种索引? 9、innodb的事务与日志的实现方式? 10、简述Mysql Innodb引擎和MyIASM引擎的区别? 11、innodb的读写参数优化? 12、备份计划,mysqldump以及xtranbackup...
3、以删除的叶节点数量:指得是数据行的delete操作从逻辑上删除的索引节点 的数量,要记住oracle在删除数据行后,将 “ 死 “ 节点保留在索引中,这样做可以加快sql删除操作的速度,因此oracle删除数据行后可以不必...
包括:表空间, 数据区, 包括:表空间,段,数据区,模式对象 总结 2-2 Oracle 支持 Char,Varchar2,Number,Long,Date, , , , , , Raw,Long Raw 和 LOB 等数据类型 , CREATE,ALTER,DROP 和 TRUNCATE 是用于定 , , 义数据的...
包括:表空间, 数据区, 包括:表空间,段,数据区,模式对象 总结 2-2 Oracle 支持 Char,Varchar2,Number,Long,Date, , , , , , Raw,Long Raw 和 LOB 等数据类型 , CREATE,ALTER,DROP 和 TRUNCATE 是用于定 , , 义数据的...
1.数据插入使用场景(被插入表不存在/被...2.drop/delete/truncate使用的区别 3.基本事务控制语句的运用 3.通配符与like 连用 '%xxx' '_xxx': 百分号代表多个字符,下划线代表一个字符 4.日期与字符串之间的相互转换