,,MySQL中Truncate用法详解

,,MySQL中Truncate用法详解

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很像,但其实这三者差别很大。下面简单对比一下三者的异同。

Truncate和drop是DDL语句,在执行后不能回滚;是delete DML语句,可以回滚。

Truncate只能对表起作用;Delete、drop可用于表、视图等。

Truncate将清空表中的所有行,但表结构、其约束、索引等除外。将保持不变;Drop将删除表的结构及其相关约束、索引等。

Truncate将重置表的自增量;删除不会。

Truncate不会激活与该表相关的删除触发器;删除就可以了。

Truncate会将表和索引占用的空间恢复到原始大小;删除操作不会减少表或索引占用的空间,而drop语句将释放表占用的所有空间。

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

通过前面的介绍,我们可以很容易的得到truncate语句的使用场景,也就是在表格数据完全不需要的情况下可以使用truncate。如果要用delete删除一些数据,注意where子句;如果要删除一个表,当然使用drop;如果希望保留表并删除所有数据,并且与事务无关,请使用truncate。如果和事务有关,或者你想触发一个触发器,还是用delete;如果是整理表内的碎片,可以使用truncate,然后重新插入数据。

反正truncate table是一个高风险的操作,尤其是在生产环境中。以下是一些注意事项,希望大家在使用时可以做参考。

Truncate无法通过binlog回滚。

Truncate将清除所有数据并快速执行。

不能对具有外键约束引用的表使用Truncate。

Truncate需要drop权限,因此不建议授予帐户drop权限。

在执行truncate之前,一定要反复检查和确认。最好提前备份下表中的数据。

以上是边肖介绍的MySQL中Truncate用法的详细解释。希望对你有帮助。非常感谢您对我们网站的支持!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • pymysql菜鸟教程,pymysql 使用
  • pymysql菜鸟教程,pymysql 使用,pymysql模块使用简介与示例
  • mysql锁实现,mysql锁算法
  • mysql锁实现,mysql锁算法,MySQL锁机制与用法分析
  • mysql连接报错10061,mysql连接错误10060
  • mysql连接报错10061,mysql连接错误10060,MYSQL无法连接 提示10055错误的解决方法
  • mysql连接报10060错误,mysql连接报错10055
  • mysql连接报10060错误,mysql连接报错10055,MySQL连接异常报10061错误问题解决
  • mysql辅助索引和主键索引,mysql 主键 外键 索引
  • mysql辅助索引和主键索引,mysql 主键 外键 索引,MySQL索引之主键索引
  • MySQL语句大全,mysql常见语句总结
  • MySQL语句大全,mysql常见语句总结,MySQL语句整理及汇总介绍
  • mysql触发器的使用方法实验报告,mysql中触发器的使用
  • 留言与评论(共有 条评论)
       
    验证码: