Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > Truncate用法

MySQL中Truncate用法详解

作者:kun_行者

Truncate是一个能够快速清空资料表内所有资料的SQL语法。这篇文章介绍了Truncate用法及注意事项,并和drop,delete方法进行对比。需要的朋友可以收藏下,方便下次浏览观看

前言:

当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项。本篇文章主要介绍truncate语句的使用方法及注意事项。

1.truncate使用语法

truncate的作用是清空表或者说是截断表,只能作用于表。truncate的语法很简单,后面直接跟表名即可,例如: truncate table tbl_name 或者 truncate tbl_name

执行truncate语句需要拥有表的drop权限,从逻辑上讲,truncate table类似于delete删除所有行的语句或drop table然后再create table语句的组合。为了实现高性能,它绕过了删除数据的DML方法,因此,它不能回滚。尽管truncate table与delete相似,但它被分类为DDL语句而不是DML语句。

2.truncate与drop,delete的对比

上面说过truncate与delete,drop很相似,其实这三者还是与很大的不同的,下面简单对比下三者的异同。

3.truncate使用场景及注意事项

通过前面介绍,我们很容易得出truncate语句的使用场景,即该表数据完全不需要时可以用truncate。如果想删除部分数据用delete,注意带上where子句;如果想删除表,当然用drop;如果想保留表而将所有数据删除且和事务无关,用truncate即可;如果和事务有关,或者想触发trigger,还是用delete;如果是整理表内部的碎片,可以用truncate然后再重新插入数据。

无论怎样,truncate表都是高危操作,特别是在生产环境要更加小心,下面列出几点注意事项,希望大家使用时可以做下参考。

以上所述是小编给大家介绍的MySQL中Truncate用法详解,希望对大家有所帮助。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:
阅读全文