黑马程序员技术交流社区
标题:
数据库中delete和truuncate有什么区别?
[打印本页]
作者:
雷向阳
时间:
2012-10-8 15:10
标题:
数据库中delete和truuncate有什么区别?
例如:delete from tablea 和truncate table tablea的区别..
作者:
潘梦军
时间:
2012-10-8 15:17
TRUNCATE和DELETE有以下几点区别
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能触发任何DELETE触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
7、不能清空父表。
作者:
许庭洲
时间:
2012-10-8 15:39
1.truncate和delete只删除数据不删除表的结构;
2.想保留表而将所有数据删除,如果和事务无关,用truncate即可,如果和事务有关,或者想触发trigger,还是用delete。
作者:
管海鹏
时间:
2012-10-8 20:15
delete table 删除表中数据
truncate table tbName 清空数据库中数据
区别楼上都说的很清楚了,记住,一般C#代码中的删除指的是Delete
清空可以认为是truncate---限于对测试数据,一般很少用到
作者:
邸亚星
时间:
2012-10-13 23:09
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
TRUNCATE TABLE 则一次性地从表中删除所有的数据页并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
作者:
chens2865
时间:
2012-10-23 11:24
我简单滴说明下,Truncate子句用于清空表数据。而Delete子句是带条件的清空。当Delete删除时不指定Where子句就和Truncate效果等同了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2