sql 使用truncate和delete清空table的区别
2013-01-17 22:02
387 查看
来自:http://blog.csdn.net/lcawen/article/details/8114560
初衷是一个有自加的主键id的表,已经有了很多调试数据,然后到了正式利用此表的时候,仅将这些数据删除,然而,id却会自动依照原有的进行自增,而不是从1自增,往往都是轻易上千的,老别扭了,扒拉好久sql书,发现truncate table tablename就可以实现id从1自增功能,现提供一些几点truncate(截断)与delete(删除)的区别:
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能触发任何DELETE触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
7、不能清空父表。
初衷是一个有自加的主键id的表,已经有了很多调试数据,然后到了正式利用此表的时候,仅将这些数据删除,然而,id却会自动依照原有的进行自增,而不是从1自增,往往都是轻易上千的,老别扭了,扒拉好久sql书,发现truncate table tablename就可以实现id从1自增功能,现提供一些几点truncate(截断)与delete(删除)的区别:
1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
4、TRUNCATE不能触发任何DELETE触发器。
5、不能授予任何人清空他人的表的权限。
6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
7、不能清空父表。
相关文章推荐
- sql使用truncate和delete清空table的区别(总结)
- sql 使用truncate和delete清空table的区别
- 清空数据表sql语句 delete和truncate的区别
- SQL truncate table和delete的区别
- 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入
- SQL truncate 、delete与drop区别
- sql中drop、truncate和delete的区别
- mysql 清空表 Truncate及delete区别
- sql中truncate,delete和drop区别
- SQL中 truncate 、delete与drop区别与联系
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL中truncate 、delete与drop区别 (Rollback Segment)
- SQL SERVER Truncate Table 和 Delete Table的区别
- SQL 添加中文记录;SQL 删除记录;删除所有内容(记录);delete和truncate的区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别