TRUNCATE的用法,以及与delete的对比

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dly1580854879/article/details/73835761

  1.TRUNCATE命令用法:

      TRUNCATE     TABLE     表名;

      eg: TRUNCATE     TABLE  user;删除user表中所有的数据

2.TRUNCATE与DELETE的比较:


      TRUNCATE与不带参数的DELETE语句的功能是一样的,都是删除表中所有的行。

    但是TRUNCATE比DELETE速度快,因为它使用的系统和事务日志资源比较少。

    DELETE没删除一行,就在事物日志中为所删除的每一行记录一项。

    TRUNCATE TABLE通过释放存储表数据所用的数据页来删除数据,并且只在日志中记录页的释放。


    TRUNCATE TABLE删除了表中的所有行,但表结构,列,约束,索引保持不变。

    想要保留原有的标识计数值,就用delete。

    想要删除表数据机器结构,就用DROP。


  由Foreign key  约束引用的表,不能实用TRUNCATE,应该使用不带where字句的delete语句, 由于TRUNCATE TALE 不记录在 日志中,所以他不能激活触发器。

  TRUNCATE TABLE   不能用于暗语了索引视图的表。


猜你喜欢

转载自blog.csdn.net/dly1580854879/article/details/73835761