sql使用truncate和delete清空table的区别

 我来答
一骑当后
2015-02-13 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40298 获赞数:306440
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部
  初衷是一个有自加的主键id的表,已经有了很多调试数据,然后到了正式利用此表的时候,仅将这些数据删除,然而,id却会自动依照原有的进行自增,而不是从1自增,往往都是轻易上千的,老别扭了,扒拉好久sql书,发现truncate table tablename就可以实现id从1自增功能,现提供一些几点truncate(截断)与delete(删除)的区别:
  
  1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
  2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。 www.2cto.com
  3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
  
  4、TRUNCATE不能触发任何DELETE触发器。
  5、不能授予任何人清空他人的表的权限。
  6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
  7、不能清空父表。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式