MySQL TRUNCATE TABLE语句

时间:2019-02-04 12:52:26  来源:igfitidea点击:

TRUNCATE TABLE语句用于从MySQL中的表中删除所有记录。它执行的效果与不带WHERE子句的DELETE语句相同。

警告:如果对标进行了表截断(truncate),则不能回滚TRUNCATE TABLE语句。

MySQL TRUNCATE TABLE语句语法

MySQL中TRUNCATE TABLE语句的语法为:

TRUNCATE TABLE [database_name.]table_name;
参数说明
database_name可选的。指定数据库的名称。
table_name您要截断的表。

说明

  • 截断表时,表上的AUTO_INCREMENT计数器将被重置。(重新设置为1)
  • MySQL通过删除并创建表来截断该表。因此,该表的DELETE触发器不会被触发。
  • 从MySQL 5.5开始,您不能截断被另一个表中的外键引用的InnoDB表。
  • 从MySQL 5.6开始,您不能截断被另一个表中的外键引用的NDB表。

MySQL TRUNCATE TABLE语句的示例

在MySQL中,如果不考虑数据回滚,则将表进行截断是清除表数据的快速方法。
在大多数情况下,MySQL处理表截断的过程与其他数据库(例如Oracle或SQL Server)的方式有所不同。

让我们看一个如何在MySQL中是使用TRUNCATE TABLE语句的。

TRUNCATE TABLE customers;

将截断customers的表,并从该表中删除所有记录。

它等同于MySQL中的以下DELETE语句:

DELETE FROM customers;

这两个语句都会删除客户表中的所有数据。两者之间的主要区别是使用DELETE语句,你可以选择回滚,而使用TRUNCATE TABLE语句,则不能回滚。


清空表时,表名可以加上数据库名。

TRUNCATE TABLE test.products;

test 为数据库名。