DELETE 与 TRUNCATE 有什么不同?
2013-05-25 11:25
232 查看
删除表中的数据的方法有delete,truncate,
它们都是删除表中的数据,而不能删除表结构,delete 可以删除整个表的数据也可以删除表中某一条或N条满足条件的数据,而truncate只能删除整个表的数据,一般我们把delete 操作叫作删除表,而truncate操作叫作截断表.
truncate
操作与
delete
操作对比
TRUNCATE和DELETE有以下几点区别
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能触发任何DELETE触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引将重新设置成初始大小,而delete则不能。
7、不能清空父表。
它们都是删除表中的数据,而不能删除表结构,delete 可以删除整个表的数据也可以删除表中某一条或N条满足条件的数据,而truncate只能删除整个表的数据,一般我们把delete 操作叫作删除表,而truncate操作叫作截断表.
truncate
操作与
delete
操作对比
操作 | 回滚 | 高水线 | 空间 | 效率 |
Truncate | 不能 | 下降 | 回收 | 快 |
delete | 可以 | 不变 | 不回收 | 慢 |
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能触发任何DELETE触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引将重新设置成初始大小,而delete则不能。
7、不能清空父表。
相关文章推荐
- DELETE 与 TRUNCATE 有什么不同?
- DELETE 与 TRUNCATE 有什么不同?
- DELETE 与 TRUNCATE 有什么不同
- DELETE 与 TRUNCATE 有什么不同?
- DELETE 与 TRUNCATE 有什么不同?
- DELETE 与 TRUNCATE 有什么不同
- 含有自增序列的表中使用truncate与delete的不同结果
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较
- truncate和delete之间有什么区别
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(举例说明)
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(举例说明)
- truncate和delete和drop之间有什么区别
- 细谈—数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(举例说明)
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)
- SQL Server中Truncate,Delete,Drop的相同点和不同点
- Oracle - 关于truncate 与 Delete的一点不同 (高水位线)
- truncate和delete之间有什么区别
- malloc/free与new/delete有什么不同?
- Truncate与Delete删除表不同处