A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卫奔 中级黑马   /  2013-5-21 16:30  /  1673 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

delete 和 truncate 删除数据时有什么不同,求详细解释!!!

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

5 个回复

倒序浏览
简单的说:
truncate删除表比较快,但删除的数据不能恢复,只能删除表中的所有数据
而delete删除比truncate慢,删除的数据可以恢复,后面可以跟where条件删除某些指定记录。
回复 使用道具 举报
楼上的说的不错,详细来说:就是truncate 是一种截断表格,表格中的数据被截断,就不能恢复了,而delete是一般的删除,对表删除的操作,记录在日志中,当想恢复时,可以根据日志恢复到原始状态,还可以用回滚来恢复。
回复 使用道具 举报
truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。
这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
张成智 发表于 2013-5-21 18:02
truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。
这种快速删除与delete from 数据表 ...

谢谢楼上的了,要是就是这句话
回复 使用道具 举报
delete删除数据添加事物,数据可恢复,truncate删除数据不添加事物,数据恢复不了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马