truncate,delete,drop

转载 2006年06月07日 23:05:00

truncate,delete,drop的比较:


-->

注意:这里说的delete是指不带where子句的delete语句


相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据


不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.


2.delete语句是DML,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是DDL, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.


3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).


4.速度,一般来说: drop> truncate > delete


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

sql之truncate、delete与drop区别

  • 2012年03月06日 10:40
  • 5KB
  • 下载

临时表空间、drop、truncate、delete的区别

sqlplus登录/sqlplus命令登录   在安装Oracle时,你需要记住设置的“全局数据库名”(默认为orcl) 和 口令,在以两种方式登录时:   用户名: sys(超级用户==sysd...

sql之truncate_、delete与drop区别.pdf

  • 2011年04月22日 10:01
  • 54KB
  • 下载

truncate,delete,drop的异同点

  • 2008年06月19日 14:26
  • 1KB
  • 下载

SQL语句中----删除表数据drop、truncate和delete的用法

SQL语句中----删除表数据drop、truncate和delete的用法

sql语句中----删除表数据drop、truncate和delete的用法

原地址:http://www.cr173.com/html/40708_1.html 虽然西西不建议大家去用命令删除数据库表中的东西,但是这些删除命令总有用的着的地方。 说到删除表数据的关...

sql语句中----删除表数据drop、truncate和delete的用法

 说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是...

sql语句中----删除表数据drop、truncate和delete的用法

说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:truncate,delete,drop
举报原因:
原因补充:

(最多只允许输入30个字)