zoukankan      html  css  js  c++  java
  • sql使用truncate和delete清空table的区别

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

      初衷是一个有自加的主键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、不能清空父表。

    我要把所有的坑都趟平!
  • 相关阅读:
    词云(WordCloud)
    Pandas常用方法
    PCA降维的原理及实现
    支持向量机(SVM)公式整理
    《小狗钱钱》
    初识 Netty
    hello world
    算法-归并排序
    算法-堆与堆排序
    Java并发编程05-线程池
  • 原文地址:https://www.cnblogs.com/loveling-0239/p/6477814.html
Copyright © 2011-2022 走看看